gpt4 book ai didi

collections - 从 ES6 map() 函数返回多个值

转载 作者:行者123 更新时间:2023-12-03 07:30:40 29 4
gpt4 key购买 nike

说我有这样的事情:

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]

我可以使用减少功能
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);

但这是最好的方法吗?

最佳答案

只使用一个 reduce()你可以这样做。你不需要map() .
更好的方法是这样的:

const values = [1,2,3,4];
const newValues= values.reduce((acc, cur) => {
return acc.concat([cur*cur , cur*cur*cur, cur+1]);
// or acc.push([cur*cur , cur*cur*cur, cur+1]); return acc;
}, []);

console.log('newValues =', newValues)


编辑:
更好的方法是使用 flatMap(正如@ori-drori 提到的):

const values = [1,2,3,4]; 

const newValues = values.flatMap((v) => [v *v, v*v*v, v+1]);

console.log(JSON.stringify(newValues)); //[1, 1, 2, 4, 8, 3, 9, 27, 4, 16, 64, 5]

关于collections - 从 ES6 map() 函数返回多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46986710/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com