gpt4 book ai didi

javascript - 在 Javascript 中连接数组

转载 作者:行者123 更新时间:2023-12-03 09:44:07 24 4
gpt4 key购买 nike

我是 javascript 的新手,我在使用 reduce 和 concat 函数将多个数组展平为一个完整数组时遇到了问题。

var array = [ [1, 3], [6, 6], [3, 3] ]; 

var finishedArray = function(array) {
var reducedArray = {};
var completeArray = {};


for (var i = 0; i < array.length; i++) {
reducedArray[i] = array[i].reduce(function (a, b) {
return a + b;
});

completeArray = reducedArray[i].concat(reducedArray[i + 1]);
}

return completeArray;

}

console.log(finishedArray(array));`

我得到的错误是:completeArray = reducedArray[i].concat(reducedArray[i + 1]);

TypeError: undefined 不是函数

这是为什么???

最佳答案

简单的方法:

var finishedArray = [ [1, 3], [6, 6], [3, 3] ].reduce(Function.apply.bind([].concat), [])

另一个比可读性更好的好选择是使用命名函数,它允许您将此转换应用于许多地方的许多数组,而无需每次都使用那么丑陋的样板:

function flat(a,b){return a.concat(b);}

[[1,3],[6,6],[3,3]].reduce(flat);
[[7,3],[4,6],[8,1]].reduce(flat);

这是展平许多不同数组的最短路径。

请注意,您也可以使用与我的第一个建议相同的快速但丑陋的语法来编写可重用的代码:

 var flat=Function.apply.bind([].concat);

另请注意,elclanrs 显示了一种我非常喜欢的更简单的方法:

 [].concat.apply([],[[1,3],[6,6],[3,3]]) 

关于javascript - 在 Javascript 中连接数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27993407/

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