gpt4 book ai didi

javascript - 如何分别遍历嵌套数组项

转载 作者:行者123 更新时间:2023-11-29 10:58:11 25 4
gpt4 key购买 nike

我有一个三维数组,例如:

var array = [[1,0][3,3][2,1][0,8]]

我想对每个子数组中的第一项做一些事情,但对每个子数组中的第二项做一些其他事情。

因此,例如,我想求出 array[0][0]、array[1][0]、array[2][0] 等的总和array.length。但是,我想要 array[0][1]、array[1][1]、array[2][1] 等的单独结果。

我仍在学习 javascript(非常缓慢),如果可能的话,我希望有人指出正确的方向,而不是获得现成的解决方案。我一直在寻找可能的解决方案,我想我可能需要一个嵌套的 for 循环,但我不确定如何构建它以获取所有值。

我一直在尝试以下方法:

for (var i = 0; i < array.length; i++) {
for (var j = 0; j < array.length; j++) {
return array[i][j];
}
}

但我不明白发生了什么足以操纵结果。

如果有人能引导我朝着正确的方向寻找解决方案,那将不胜感激。

提前致谢。

最佳答案

您可能会考虑使用 .reduce - 在每次迭代中,将第一个数组值添加到累加器的属性,然后对第二个数组值执行任何您需要的操作,将其结果分配给另一个累加器的属性。例如,假设对于第二个项目,您想获得他们的产品:

const input = [[1,0],[3,3],[2,1],[0,8]];
const { sum, product } = input
.reduce(({ sum=0, product=1 }, [item0, item1]) => ({
sum: sum + item0,
product: product * item1
}), {});
console.log(sum, product);

在上面的代码中,累加器是一个具有两个属性的对象,sum(从 0 开始)和 product(从 1 开始)。在 reduce 中,返回一个对象,新的 sum 是旧的 sum 加上数组中的第一项,而新的 sum product 是旧的 product 乘以数组中的第二项。 (当然,结果为0,因为在第一个子数组中,第二项为0)

另请注意,数组始终需要用逗号分隔每个数组项 - 您需要修复输入数组的语法。

当然,如果需要,您也可以使用 for 循环,但我认为数组方法更可取,因为它们更实用,具有更好的抽象性,并且不需要手动迭代。带有 for 循环的相同代码如下所示:

const input = [[1,0],[3,3],[2,1],[0,8]];
let sum = 0;
let product = 1;
for (let i = 0; i < input.length; i++) {
const [item0, item1] = input[i];
sum += item0;
product *= item1;
}
console.log(sum, product);

关于javascript - 如何分别遍历嵌套数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52825803/

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