我有一个数组
var arr = [{"id":"1","name":"One"},{"id":"2","name":"Two"}]
我推到阵列
arr.push(X)
但是,如何从名称数组中删除例如{“ id”:“ 1”,“ name”:“ One”}呢?
在普通的javascript中,您必须搜索数组以在每个对象中查找名称匹配项,然后删除该对象:
function removeFromArrayByName(arr, name) {
for (var i = 0; i < arr.length; i++) {
if (arr[i].name === name) {
arr.splice(i, 1);
return;
}
}
}
或者,如果可能有多个匹配项,并且您想要删除所有匹配项,则可以这样做(进行向后遍历,并且在找到匹配项时不返回):
function removeFromArrayByName(arr, name) {
for (var i = arr.length - 1; i >= 0; i--) {
if (arr[i].name === name) {
arr.splice(i, 1);
}
}
}
或者,甚至可以在传递属性名称进行搜索的地方使其更通用:
function removeFromArrayByName(arr, prop, val) {
for (var i = arr.length - 1; i >= 0; i--) {
if (arr[i][prop] === val) {
arr.splice(i, 1);
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句