gpt4 book ai didi

javascript - 如何通过在 Javascript 中循环从数组中删除多个项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:15:51 24 4
gpt4 key购买 nike

所以,我有一个包含多个值的 javascript 数组:

var keymap = {'name': 'foobaz', 
'mappings': [{'id': 1, 'key': 'b'},
{'id': 2, 'key': 'c'},
{'id': 3, 'key': 'd'},
{'id': 1, 'key': 'e'},
{'id': 10, 'key': 'f'},
{'id': 7, 'key': 'g'},
{'id': 1, 'key': 'h'}]
}

我想删除键为“b”的所有条目。请注意,这些 ID 对应于后端 ID。我想要做的是删除一些映射(例如,所有“id”为“1”)。

我试过的是:

for (var i = 0; i < keymap['mappings'].length; i++) {
if (keymap['mappings'][i]['id'] === id_to_match) {
keyboard_map['mappings'].splice(i, 1);
}
}

但是,slice 会就地改变数组的索引,因此现在 i 不会指向正确的索引点(因为任何更高的索引现在都是 i-n 其中 n 是之前完成的切片数。

实现这个的正确方法是什么?

最佳答案

一个简单的方法是递减迭代器(这是有效的,因为你每次迭代都读取长度 - 所以确保你避免缓存长度)

for (var i = 0; i < keymap['mappings'].length; i++) {
if (keymap['mappings'][i]['id'] === id_to_match) {
keyboard_map['mappings'].splice(i, 1);
i--;
}
}

关于javascript - 如何通过在 Javascript 中循环从数组中删除多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19520662/

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