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

例如,我有这个数组,如果我stringfy它会是这样的:

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

我怎么能从两辆车中删除:门和价格。 只有在“汽车”和“身份证”arrays? 例如:

 [{"car":"Toyota","ID":"1"},{"car":"Chevrolet","ID":"2"}] 

谢谢!

您可以使用Array.prototype.map()自定义您的结果数组,将callback函数作为参数返回一个新的自定义对象,每个迭代中只有carID属性。

map()方法创build一个新的数组,其结果是对调用数组中的每个元素调用一个提供的函数。

这是你的代码应该如何:

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

演示:

 var arr = [{"car":"Toyota","ID":"1", "Doors": "4", "price": "20.000"},{"car":"Chevrolet","ID":"2", "Doors": "2", "price": "15.000"}]; var results = arr.map(function(item){ return {car : item["car"], ID : item["ID"]} }); console.log(JSON.stringify(results)); 

您必须遍历数组,删除每个对象上的属性。

例:

 for (var i = 0; i < myArray.length; i++){ delete myArray[i].myProperty } 

检查解释说明:

 var array=[{"car":"Toyota","ID":"1", "Doors": "4", "price": "20.000"},{"car":"Chevrolet","ID":"2", "Doors": "2", "price": "15.000"}]; var resultArr = array.map(function(obj){ //we take only key-value pairs we need using JS bracket notation return {"car":obj["car"],"ID":obj["ID"]}; }); console.log(resultArr); 

您将要查找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()来提高大型数组的性能。