获得徽章 0
- 5.31 - 30s 代码优化(1)「迭代和转换数组数据的方法」
🎈 除了常见的 for 循环来遍历转换数组外,有以下两个主流思路
/**
* 迭代和转换数组数据的方法
*/
// reduce
const files = [ 'foo.txt ', '.bar', ' ', 'baz.foo' ];
// 使用Array.prototype.reduce()空数组作为初始值。
const filePaths = files.reduce((acc, file) => {
const fileName = file.trim();
if(fileName) {
const filePath = `~/cool_app/${fileName}`;
// 使用Array.prototype.push()或 展开 ( ...) 运算符来添加元素。
acc.push(filePath);
}
return acc;
}, []);
// filePaths = [ '~/cool_app/foo.txt', '~/cool_app/.bar', '~/cool_app/baz.foo']
// ES6 Array Methods
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']展开23