loops/reduce/方法链 处理数组对比

loops 循环

const files = ['foo.txt ', '.bar', '   ', 'baz.foo']
let filePaths = []

for (let file of files) {
	const fileName = file.trim()
	if (fileName) {
		const filePath = `~/cool_app/${fileName}`
		filePaths.push(filePath)
	}
}

// filePaths = [ '~/cool_app/foo.txt', '~/cool_app/.bar', '~/cool_app/baz.foo']

Array reduce

const files = ['foo.txt ', '.bar', '   ', 'baz.foo']
const filePaths = files.reduce((acc, file) => {
	const fileName = file.trim()
	if (fileName) {
		const filePath = `~/cool_app/${fileName}`
		acc.push(filePath)
	}
	return acc
}, [])

// filePaths = [ '~/cool_app/foo.txt', '~/cool_app/.bar', '~/cool_app/baz.foo']

Method chaining 方法链

const files = ['foo.txt ', '.bar', '   ', 'baz.foo']
const filePaths = files
	.map(file => file.trim())
	.filter(Boolean)
	.map(fileName => `~/cool_app/${fileName}`)

// filePaths = [ '~/cool_app/foo.txt', '~/cool_app/.bar', '~/cool_app/baz.foo']

posted on 2022-09-07 08:47  小馬過河﹎  阅读(26)  评论(0)    收藏  举报

导航