gpt4 book ai didi

javascript - 展平数组对象的数组 JavaScript

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:01:07 25 4
gpt4 key购买 nike

我正在尝试展平数组对象数组。例如,我们可能有这样的东西:

[{ numbers: [1, 2, 3] }, { numbers: [4, 5] }, { numbers: [6] }]

我想把它压平成:

[1, 2, 3, 4, 5, 6]

我有一个可行的解决方案来做这样的事情:

const arr = [{ numbers: [1, 2, 3] }, { numbers: [4, 5] }, { numbers: [6] }];
const almostFlattened = arr.map((obj) => obj.numbers);
const flattened = [].concat.apply([], almostFlattened);
console.log(flattened);

有没有人知道这里有更简单或更高效的解决方案,最好没有 almostFlattened 中间步骤?

最佳答案

您可以尝试 Array.reduce(),并通过将数字与累加器连接来展平数字的数组:

const arr = [{ numbers: [1, 2, 3] }, { numbers: [4, 5] }, { numbers: [6] }];

const result = arr.reduce((r, obj) => r.concat(obj.numbers), []);

console.log(result);

另一个选项是 Array.flatMap()(IE/Edge 不支持):

const arr = [{ numbers: [1, 2, 3] }, { numbers: [4, 5] }, { numbers: [6] }];

const result = arr.flatMap(obj => obj.numbers);

console.log(result);

关于javascript - 展平数组对象的数组 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49866369/

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