如何从数组中删除对象? 我希望从someArray中删除包含名称Kristian的对象。例如:

someArray = [{name:"Kristian", lines:"2,5,10"},
             {name:"John", lines:"1,19,26,96"}];

我想实现:

someArray = [{name:"John", lines:"1,19,26,96"}];

当前回答

只从数组中返回属性名不是“Kristian”的对象

var noKristianArray = $.grep(someArray, function (el) { return el.name!= "Kristian"; });

演示:

var someArray = [ {名称:“克里斯蒂安”,行:“2、5、10”}, {名称:“约翰”,行:“1,19日,26日96”}, {名称:“克里斯蒂安”,行:" 58160 "}, {名称:“费利克斯”,行:“96”1,19日,26日} ]; var noKristianArray = $。grep(someArray, function (el){返回el.name!= "克里斯蒂安”;}); console.log (noKristianArray); < script src = " https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js " > < /脚本>

其他回答

你所显示的“数组”是无效的JavaScript语法。花括号{}表示具有属性名/值对的对象,而方括号[]表示数组,就像这样:

someArray = [{name:"Kristian", lines:"2,5,10"}, {name:"John", lines:"1,19,26,96"}];

在这种情况下,您可以使用.splice()方法删除一个项。要删除第一项(索引0),如下所示:

someArray.splice(0,1);

// someArray = [{name:"John", lines:"1,19,26,96"}];

如果你不知道索引,但想通过数组搜索找到名称为“Kristian”的项来删除,你可以这样做:

for (var i =0; i < someArray.length; i++)
   if (someArray[i].name === "Kristian") {
      someArray.splice(i,1);
      break;
   }

编辑:我刚刚注意到你的问题被标记为“jQuery”,所以你可以尝试$.grep()方法:

someArray = $.grep(someArray,
                   function(o,i) { return o.name === "Kristian"; },
                   true);

这里有一个映射和拼接的例子

const arrayObject = [ {name: "name1", value: "value1"}, {name: "name2", value: "value2"}, {name: "name3", value: "value3"}, ]; let index = arrayObject.map((item) => item.name).indexOf("name1"); If(索引> -1){ arrayObject。拼接(指数(1); console.log(“结果”,arrayObject); }

输出

Result [
  {
    "name": "name2",
    "value": "value2"
  },
  {
    "name": "name3",
    "value": "value3"
  }
]

你也可以使用地图功能。

someArray = [{name:"Kristian", lines:"2,5,10"},{name:"John",lines:"1,19,26,96"}];
newArray=[];
someArray.map(function(obj, index){
    if(obj.name !== "Kristian"){
       newArray.push(obj);
    }
});
someArray = newArray;
console.log(someArray);

虽然这可能不适合这种情况,我发现前几天,如果你不需要改变数组的大小,你也可以使用delete关键字从数组中删除一个项目。

var myArray = [1,2,3];

delete myArray[1];

console.log(myArray[1]); //undefined

console.log(myArray.length); //3 - doesn't actually shrink the array down

为简单的数组工作投票给UndercoreJS。

_.without()函数帮助删除一个元素:

 _.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
    => [2, 3, 4]