【发布时间】:2018-04-09 17:57:09
【问题描述】:
假设我有这样的事情:
let values = [1,2,3,4];
let newValues = values.map((v) => {
return v *v ;
});
console.log(newValues); //[1,4,9,16]
非常直接。
现在,如果我想为每个对象返回多个值怎么办?
例如。
let values = [1,2,3,4];
let newValues = values.map((v) => {
return [v *v, v*v*v, v+1] ;
});
console.log(newValues); //This is what I want to get
//[1, 1, 2, 4, 8, 3, 9, 27, 4, 16, 64, 5]
我可以使用reduce函数
let values = [1,2,3,4];
let newValues = values.map((v) => {
return [v *v, v*v*v,v+1] ;
}).reduce((a, c) => {
return a.concat(c);
});
console.log(newValues);
但这是最好的方法吗?
【问题讨论】:
-
您要的是平面图。见this SO answer
-
@RayToal 谢谢。我觉得很多有效的编程都是知道正确的术语。
标签: collections ecmascript-6 flatmap