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”,但从未使用过。