gpt4 book ai didi

javascript - 向后迭代数组错误

转载 作者:行者123 更新时间:2023-11-28 19:00:37 25 4
gpt4 key购买 nike

我正在学习 Javascript 的一些基础知识。我从左到右(这些值将是 17,5,1,9,24)和从右到左(这些值将是 13,3,1,7,21)添加子数组的值。我的从左到右的函数运行得很好!但是我的从右到左的函数在到达时抛出错误:

for(var i = matrixArray.length; i > 0 ; i--){
rightToLeftHorizontalValues.push(matrixArray[i][i]);
}

错误显示:未捕获类型错误:无法读取未定义的属性“5”

var matrixArray = [
[17, 16, 15, 14, 13],
[18, 5, 4, 3, 12],
[19, 6, 1, 2, 11],
[20, 7, 8, 9, 10],
[21, 22, 23, 24, 25]
];

function matrixFundemental(){

function leftToRightValues() {
horizontalTotalLeftToRight = 0;
leftToRightHorizontalValues = [];
for(var i = 0; i < matrixArray.length; i++){
leftToRightHorizontalValues.push(matrixArray[i][i]);
}
for (var i = 0; i < leftToRightHorizontalValues.length; i++){
horizontalTotalLeftToRight += leftToRightHorizontalValues[i];
}
console.log(horizontalTotalLeftToRight)
}

function rightToLeftValues() {
horizontalTotalRightToLeft = 0;
rightToLeftHorizontalValues = [];
for(var i = matrixArray.length; i > 0 ; i--){
rightToLeftHorizontalValues.push(matrixArray[i][i]);
}
for (var i = 0; i < rightToLeftHorizontalValues.length; i++){
horizontalTotalLeftToRight += rightToLeftHorizontalValues[i];
}
console.log(horizontalTotalRightToLeft)
}

leftToRightValues();
rightToLeftValues();
};

matrixFundemental();

此时我似乎无法弄清楚我哪里出了问题。

最佳答案

这是因为array.length会返回5,但是array[5]不存在。有 5 个条目,但是第一个索引从零开始。

您需要从array.length - 1(即4)开始迭代

for(var i = matrixArray.length-1; i >= 0 ; i--){
rightToLeftHorizontalValues.push(matrixArray[i][i]);
}

关于javascript - 向后迭代数组错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32638964/

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