问题:经常会有这样的场景,我们需要将多个对象放进数组,而我们一般的做法是,先创建一个新数组,然后遍历目标数组,取出数组中的每一项然后push 到这个新数组,
const dataList = [
{ "id":1, "name":"zhangsan", "age": 30 },
{ "id":2, "name":"lisi", "age": 25 },
{ "id":3, "name": "wangwu", "age": 22 }
];
const newArr = [];
function pushObjIntoArr() {
for (let i = 0; i <dataList.length; i++) {
newArr.push({
id: dataList[i].id,
name: dataList[i].name,
age: dataList[i].age
})
}
return newArr
}
然后有了es6的Object.assing([], arr),我们可以很方便的这样操作:
const newArr = Object.assign([], dataList)
这样就直接可以赋值给新的对象数组
那么,Object.keys()可以很方便的将对象转化为对象数组
const info = {
name: 'zhangsan',
age: 20,
gender: 'male',
address: 'beijing'
}
const infoObj = Object.keys(info).map(key => ({
key,
value: info[key]
}))
// 当然我们还可以做其他一些操作,比如:
const infoObj = Object.keys(info).map(key => {
//检索如果key为name时他的value
if (key === 'name') {
return info[key]
}
})