for 循环对于数组数组的动态数据不能正常工作

问题描述 投票:0回答:0

questionOptions[index] 是 ["Yes","No"] 链接 = [ {Value="No"}, {Value="Yes"}, {Value="No"} ]

我的 responseValues 静态值为 [ [0, 0, 0 ], [ 0, 0, 0 ] ]

for (let k = 0; k < links.length; k++){
    const optionName=questionOptions[index].find((option) => option === links[k].Value);
    if (optionName) {
        const optionIndex = questionOptions[index].indexOf(optionName);
        responseValues[optionIndex][k] = responseValues[optionIndex][k] + 1;
     }
}

当我在循环的“responseValues”数组中提供静态 Vaue 时,for 循环正在工作..但是当我动态获取数据时,for 循环中的最后一行给我值,如 [[1,0,0], [1,0,0]在第一个循环结束时(k=0)。实际值应为 [[0,0,0], [1,0,0]]...并且在所有 k=2 循环结束时,最终答案应为 [[0,1,0],[1, 0,1]].

动态数组是这样的,其中 childQuestions.length =3 和 questionOptions[index].length = 2

let childOptions = [];
let responseValues = [];
for (let i = 0; i < childQuestions.length; i++){
    childOptions.push(0);
}
for (let t = 0; t < questionOptions[index].length; t++{
    responseValues.push(childOptions)
}
arrays loops for-loop dynamic push
© www.soinside.com 2019 - 2024. All rights reserved.