Javascript 从Node.js中的数组对象中删除特定属性

Javascript 从Node.js中的数组对象中删除特定属性,javascript,arrays,node.js,object,Javascript,Arrays,Node.js,Object,例如,我有一个数组,如果我将其字符串化,它将如下所示: [{"car":"Toyota","ID":"1", "Doors": "4", "price": "20.000"},{"car":"Chevrolet","ID":"2", "Doors": "2", "price": "15.000"}] 我怎样才能从这两辆车上取下来:车门和价格。只在数组中留下“car”和“id”?例如: [{"car":"Toyota","ID":"1"},{"car":"Chevrolet","ID":"2"}

例如,我有一个数组,如果我将其字符串化,它将如下所示:

[{"car":"Toyota","ID":"1", "Doors": "4", "price": "20.000"},{"car":"Chevrolet","ID":"2", "Doors": "2", "price": "15.000"}]
我怎样才能从这两辆车上取下来:车门和价格。只在数组中留下“car”和“id”?例如:

[{"car":"Toyota","ID":"1"},{"car":"Chevrolet","ID":"2"}]
谢谢大家!

您可以使用自定义结果数组,将回调函数作为参数,返回新的自定义对象,在每次迭代中仅具有
car
ID
属性

map()方法使用调用 在调用数组中的每个元素上提供函数

这是您的代码应该如何编写的:

var results = arr.map(function(item){
  return {car : item["car"], ID : item["ID"]}
});
演示:

var arr=[{“汽车”:“丰田”,“ID”:“1”,“车门”:“4”,“价格”:“20.000”},{“汽车”:“雪佛兰”,“ID”:“2”,“车门”:“2”,“价格”:“15.000”}];
var结果=arr.map(功能(项目){
返回{car:item[“car”],ID:item[“ID”]}
});

log(JSON.stringify(results))检查注释以获取解释:

var数组=[{“car”:“Toyota”,“ID”:“1”,“Doors”:“4”,“price”:“20.000”},{“car”:“Chevrolet”,“ID”:“2”,“Doors”:“2”,“price”:“15.000”}];
var resultar=array.map(函数(obj){
//我们仅使用JS括号表示法获取所需的键值对
返回{“car”:obj[“car”],“ID”:obj[“ID”]};
});

console.log(resultar)
您将寻找
delete
操作符来完全删除这些属性。它可能看起来像这样:

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

for (car of array) {
    delete(car.Doors);
    delete(car.price);
}

您还可以考虑在大型阵列上使用Array.splice()以提高性能。

您必须在阵列上迭代删除每个对象上的属性

例如:

for (var i = 0; i < myArray.length; i++){
  delete myArray[i].myProperty
}
for(var i=0;i
添加到所有其他答案中

使用ES6语法的更干净的方法

var originalArray=[{“car”:“Toyota”,“ID”:“1”,“Doors”:“4”,“price”:“20.000”},{“car”:“Chevrolet”,“ID”:“2”,“Doors”:“2”,“price”:“15.000”}];
var immutableArray=originalArray.map(({Doors,price,…rest})=>rest);

log(不可变数组)添加到答案中,使用ES6和以避免突变和一些ESlint问题

const数组=[{“car”:“Toyota”,“ID”:“1”,“Doors”:“4”,“price”:“20.000”},
{“汽车”:“雪佛兰”,“ID”:“2”,“车门”:“2”,“价格”:“15.000”}];
const newArray=Array.map((对象)=>{
const{car,ID}=object;
返回{car,ID};
});
let arr=[{“car”:“Toyota”,“ID”:“1”,“Doors”:“4”,“price”:“20.000”},{“car”:“Chevrolet”,“ID”:“2”,“Doors”:“2”,“price”:“15.000”}]
设arr1=arr.map(({car,ID})=>({car,ID}));
设arr2=arr.map(({Doors,price,…remainingAttrs})=>remainingAttrs);
log('arr1:',arr1);

log('arr2:',arr2)使用前请查看标签。。。它清楚地说明了
Java(不要与JavaScript或JScript混淆)
。到目前为止,您尝试了什么?你想修改同一个数组,还是可以创建一个新数组?你能告诉我们你做了什么或你做了什么研究吗?我有这个数组,你的问题中的数组在哪里?它可能会重复,这会导致es linting错误,即定义了“Doors”和“price”,但从未使用过。