繁体   English   中英

按名称从数组中删除元素

[英]Remove elements from array by name

我想知道如何从我的阵列中移除boats

var obj = [
    { car: 1, boat: 2, plane: 3  },
    { car: 3, boat: 9, plane: 12  }
];


// Desired output
[
   { car: 1, plane: 3 },
   { car: 3, plane: 12 }
];

我试过的是使用Array.prototype.filter()

console.log(obj.filter(el => el (how to get el name) === 'boat'));

你没有从数组中删除元素; 相反,您希望从现有对象中删除属性,这些对象恰好是数组元素。

使用delete运算符从对象中删除属性。 由于您没有从数组中删除元素,因此您不需要使用filter

for( var i = 0; i < obj.length; i++ ) {
    delete obj[i]['boat'];
}

只需删除它

obj.forEach(function(el){
  delete el.boat;
})
//"[{"car":1,"plane":3},{"car":3,"plane":12}]"

如果要创建新阵列而不是修改现有阵列:

var obj = [
    { car: 1, boat: 2, plane: 3  },
    { car: 3, boat: 9, plane: 12  }
];

var newArr = obj.map(e => ({car: e.car, plane: e.plane}));
// newArr = [{car: 1, plane: 3},{car: 3, plane: 12}]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM