从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函数作为参数返回一个新的自定义对象,每个迭代中只有car
和ID
属性。
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()来提高大型数组的性能。