按名称从数组中删除元素

时间:2017-06-26 20:27:48

标签: javascript arrays ecmascript-6

我想知道如何从我的数组中删除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'));

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

删除它

v2/v2[2]
## [1] -2  1

答案 2 :(得分:0)

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

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}]