我有一个 JavaScript 数组,例如:
[["$6"], ["$12"], ["$25"], ["$25"], ["$18"], ["$22"], ["$10"]]
我将如何将单独的内部数组合并为一个:
["$6", "$12", "$25", ...]
原文由 Andy 发布,翻译遵循 CC BY-SA 4.0 许可协议
下面是一个简短的函数,它使用一些较新的 JavaScript 数组方法来展平 n 维数组。
function flatten(arr) {
return arr.reduce(function (flat, toFlatten) {
return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);
}, []);
}
用法:
flatten([[1, 2, 3], [4, 5]]); // [1, 2, 3, 4, 5]
flatten([[[1, [1.1]], 2, 3], [4, 5]]); // [1, 1.1, 2, 3, 4, 5]
原文由 Noah Freitas 发布,翻译遵循 CC BY-SA 3.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
您可以使用
concat
合并数组:使用
concat
的apply
方法只会将第二个参数作为一个数组,所以最后一行与此相同:还有
Array.prototype.flat()
方法(在 ES2019 中引入),您可以使用它来展平数组,尽管 它仅在 Node.js 版本 11 开始可用,而在 Internet Explorer 中根本不可用。