从 Node.js 中的 Array 对象中删除特定属性

Mat*_*uez 3 javascript arrays object node.js

例如,我有这个数组,如果我将其字符串化,它将是这样的:

[{"car":"Toyota","ID":"1", "Doors": "4", "price": "20.000"},{"car":"Chevrolet","ID":"2", "Doors": "2", "price": "15.000"}]
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能从 2 辆车中移除:车门和价格。并且只留在数组“car”和“id”中?例如:

[{"car":"Toyota","ID":"1"},{"car":"Chevrolet","ID":"2"}]
Run Code Online (Sandbox Code Playgroud)

谢谢!

Par*_*ata 5

let arr = [{"car":"Toyota","ID":"1", "Doors": "4", "price": "20.000"},{"car":"Chevrolet","ID":"2", "Doors": "2", "price": "15.000"}]

let arr1 = arr.map(({car, ID}) => ({car, ID}));
let arr2 = arr.map(({Doors, price, ...remainingAttrs}) => remainingAttrs);

console.log('arr1:', arr1);
console.log('arr2:', arr2);
Run Code Online (Sandbox Code Playgroud)

使用ES6 语法,您可以解构每个对象以创建新对象,而无需编写循环。

在您的情况下,剩余的字段总数与删除的总数相同以下是两种方法:

  • 如果要保留的字段数量较少,那么您可以使用:

const arr1 = arr.map(({car, ID}) => ({car, ID}))

  • 如果要删除的字段数量较少,则可以使用:

const arr2 = arr.map(({Doors, price, ...remainingAttrs}) => leftAttrs)