gpt4 book ai didi

JavaScript for 循环闭包问题

转载 作者:行者123 更新时间:2023-12-03 10:15:18 25 4
gpt4 key购买 nike

如果所有类别存在于结果的选定类别中,我将在将它们勾选为 true 后添加所有类别,但它将以前的类别结果与当前类别结果结合在一起。我尝试过关闭,但它没有给我新的对象。 查看fiddle .

var allCatsResult = [{"id":1},{"id":2}, {"id":3}, ... ];

var catsArray = [1, 2] // Array of ids from allCatsResult
var result = [
{"id":1, selectedCategories:[{"id":1},{"id":2}]},
{"id":2, selectedCategories:[{"id":4},{"id":5}]},
...
];

for (var i = 0; i < results.length; i++) {
var tmp = allCatsResult; // tried to add function form here didn't work
for (var k = 0; k < results[i].selectedCategories.length; k++) {
var index = catsArray.indexOf(results[i].selectedCategories[k].category_id);
if(index !== -1) {
tmp[index].ticked = true;
}
}
results[i].categories = tmp;
}

上面的代码给出了每个结果中所有类别的 ticked = true 的组合结果。

最佳答案

您需要复制/克隆对象数组,或者您正在操作原始对象。显然有几种方法。我选择了以下内容:

var tmp = JSON.parse(JSON.stringify(allCatsResult));

这将在tmp中创建一个新的对象数组,并且它只会正确地修改克隆。

关于JavaScript for 循环闭包问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29903915/

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