所以,我有一个包含多个值的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);
}
}
然而,切片操作会在原地改变数组的索引,因此现在i将不再指向正确的索引点(因为任何更高的索引现在都将是i-n
,其中n
是之前切片的次数)。
实现这个操作的正确方法是什么?