如何使用Javascript从数组中删除数组?

如何使用Javascript从数组中删除数组?,javascript,Javascript,我有一个数组 var arr = [{"id":"1","name":"One"},{"id":"2","name":"Two"}] 我推到阵列上 arr.push(X) 但是如何通过name从该数组中删除例如{“id”:“1”,“name”:“One”}?在普通javascript中,您必须在数组中搜索每个对象中的名称匹配项,然后删除该对象: function removeFromArrayByName(arr, name) { for (var i = 0; i < arr

我有一个数组

var arr = [{"id":"1","name":"One"},{"id":"2","name":"Two"}]
我推到阵列上

arr.push(X)

但是如何通过name从该数组中删除例如{“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, prop, val) {
    for (var i = arr.length - 1; i >= 0; i--) {
        if (arr[i][prop] === val) {
             arr.splice(i, 1);
        }
    } 
}

在纯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, prop, val) {
    for (var i = arr.length - 1; i >= 0; i--) {
        if (arr[i][prop] === val) {
             arr.splice(i, 1);
        }
    } 
}

问题是普通js,但如果使用jquery,可以编写如下函数:

function removeByName(arr, key){
   return $.grep(arr, function (n,i) {
      return n.name != key;
   });
}

在您的情况下,我将调用
removeByName(arr,'One')

问题是针对普通js,但如果使用jquery,可以编写如下函数:

function removeByName(arr, key){
   return $.grep(arr, function (n,i) {
      return n.name != key;
   });
}
在您的情况下,我将调用
removeByName(arr,'One')

可能重复的可能重复的