gpt4 book ai didi

javascript - 为什么我的嵌套数组元素没有正确添加在一起?

转载 作者:行者123 更新时间:2023-12-01 00:22:12 25 4
gpt4 key购买 nike

Why I am getting this kinda error 。但当我计算它们的乘积时,它们看起来很好。

//The funtion will add all the values in that array....
function addArrayValues(arr) {
var addition = 0;
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr[i].length; j++) {
addition += arr[i][j];
}
}
return addition;
}

var addition = addArrayValues([[[23], [34], [54]], [[34], [75]], [[75]], [65]]);
console.log(addition);

最佳答案

您没有数组的数组 - 相反,您有数组的数组数组。您需要深入 3 层,而不仅仅是 2 层:

//The funtion will add all the values in that array....
function addArrayValues(arr){
var addition=0;
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr[i].length;j++){
for (var k = 0; k < arr[i][j].length; k++) {
addition+=arr[i][j][k];
}
}
}
return addition;
}

var addition=addArrayValues([[[23],[34],[54]],[[34],[75]],[[75]],[65]]);
console.log(addition);

或者使用.flat代替:

//The funtion will add all the values in that array....
const addArrayValues = arr => arr
.flat(2)
.reduce((a, b) => a + b, 0);

var addition=addArrayValues([[[23],[34],[54]],[[34],[75]],[[75]],[65]]);
console.log(addition);

您的原始代码首先隐式地将 3 层深的数组强制转换为字符串,因此,例如,迭代

[[23],[34],[54]]

从计算开始

[23] + [34] + [54]

因此在创建addition变量期间数组将转换为字符串。

关于javascript - 为什么我的嵌套数组元素没有正确添加在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59316827/

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