我正在尝试遍历一些如下所示的数据:
[0]['fields']['status']['name'] = 'In progress'
[1]['fields']['status']['name'] = 'In progress'
[2]['fields']['status']['name'] = 'In review'
[3]['fields']['status']['name'] = 'In progress'
[4]['fields']['status']['name'] = 'In review'
我正在使用以下 foreach 循环来拼接所有无用的索引,在本例中是所有索引。
issues.forEach(function (item, index) {
if (issues[index]['fields']['status']['name'] !== "Done") {
issues.splice(index, 1);
}
});
如果我稍后遍历数组,我可以输出“进行中”和“审查中”,这很奇怪,因为它们应该被取消设置。我认为发生这种情况是因为我在使用数组时对其进行了操作。谁能解释一下出了什么问题以及如何避免这种情况。
最佳答案
只需从带索引的末尾开始循环。
这可以防止看不见的索引并将索引保留在它所属的位置。
var index = issues.length;
while (index--) {
if (issues[index].fields.status.name !== "Done") {
issues.splice(index, 1);
}
}
关于javascript - 在多维数组上使用 javascript forEach 和拼接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59931798/