需求:一个对象集合,每个对象拥有多个属性,现想只提取对象的部分属性,存放到新集合中。
实现方法有两个:
1、遍历(可读性高)
2、使用map方法(代码量少)
方法1(遍历):
//对象集合
let objList = [
{name:"ljh",age:50,sex:'女'},
{name:"cyf",age:18,sex:'男'},
{name:"hjc",age:60,sex:'N',school:"Tsinghua University"}
]
console.log(objList);
//声明新对象集合用于存放结果集
var newObjList =[];
for(let i=0;i<objList.length;i++){
let obj = {name:"",age:0,sex:''};
obj.name =objList[i].name;
obj.age =objList[i].age;
obj.sex =objList[i].sex;
newObjList.push(obj);
}
console.log(newObjList);
方法2(使用map方法):
let objList = [
{name:"ljh",age:50,sex:'女'},
{name:"cyf",age:18,sex:'男'},
{name:"hjc",age:60,sex:'N',school:"Tsinghua University"}
]
console.log(objList);
let newObjList =objList.map(({name,age,sex,school})=>({name,age}));
console.log(newObjList);
注:objList.map(({name,age,sex,school})=>({name,age}))中的"({name,age,sex,school})"为所有对象的所有属性,但并不是要全部列出。有时候我们获取的对象可能存在一些未知的属性,只要保证"=>"前的所有属性包含“=>”后的所有属性即可,因此我们也可以这样写:objList.map(({name,age})=>({name,age}))