所以,我有一个包含多个值的 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
是之前完成的切片数。
实现这一点的正确方法是什么?