[英]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.