繁体   English   中英

将对象数组中的多个特定属性过滤到新数组中

[英]Filter multiple specific properties from an array of objects into a new array

我有一大堆对象,例如

let arr = [
  {name: "name1" , surname: "surname1", age: "22"},
  {name: "name2" , surname: "surname2", age: "23"},
  {name: "name3" , surname: "surname3", age: "24"},
]

但我需要过滤它,所以它会是

arr = [
  {name: "name1" , surname: "surname1"},
  {name: "name2" , surname: "surname2"},
  {name: "name3" , surname: "surname3"},
]

我该怎么做?

使用Array#map

 const arr = [ {name: "name1", surname: "surname1", age: "22"}, {name: "name2", surname: "surname2", age: "23"}, {name: "name3", surname: "surname3", age: "24"} ]; const res = arr.map(({ name, surname }) => ({ name, surname })); console.log(res)

鉴于您要过滤多个属性,您可以将要删除的属性存储在数组中,然后在map ing 并删除属性时循环遍历它:

 const propertiesToFilter = ['age'] let arr = [ {name: "name1", surname: "surname1", age: "22"}, {name: "name2", surname: "surname2", age: "23"}, {name: "name3", surname: "surname3", age: "24"}, ] const res = arr.map(e => (propertiesToFilter.forEach(f => delete e[f]), e)) console.log(res)

使用简单for-of对象解构

for(person of arr){
    const {name, surname} = person;
    res.push({name, surname})
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM