问题:经常会有这样的场景,我们需要将多个对象放进数组,而我们一般的做法是,先创建一个新数组,然后遍历目标数组,取出数组中的每一项然后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时他的valueif (key === 'name') {
return info[key]}
})