Javascript 如何将此对象对象转换为对象数组?

Javascript 如何将此对象对象转换为对象数组?,javascript,arrays,type-conversion,Javascript,Arrays,Type Conversion,如何转换此对象: var json = { "user3" : { "id" : 1 }, "user1" : { "id" : 3 }, "user2" : { "id" : 6 } } 要创建此阵列,请执行以下操作: var json = [{ "name": "user1", "id": 3 }, { "name": "user2",

如何转换此对象:

var json = {
    "user3" : {
        "id" : 1
    },
    "user1" : {
        "id" : 3
    },
    "user2" : {
        "id" : 6
    }
}
要创建此阵列,请执行以下操作:

var json = [{
        "name": "user1",
        "id": 3
    }, {
        "name": "user2",
        "id": 6
    }, {
        "name": "user3",
        "id": 1
    }];
有人能告诉我吗?或者如何像第一个示例那样对对象进行排序?

您可以使用和迭代对象项,并从单个项中创建一个数组

Object.keys(json).reduce((items, username) => {
const user = json[username];
   return items.concat({
      name: username,
      id: user.id
   });
}, []);
您可以使用和来迭代对象项,并从单个项中创建一个数组

Object.keys(json).reduce((items, username) => {
const user = json[username];
   return items.concat({
      name: username,
      id: user.id
   });
}, []);
试一试

试一试


您可以使用
Object.entries
将对象转换为数组。使用
map
在数组中循环,并使用
对象。分配
构造新对象

var json={
“用户3”:{
“id”:1
},
“用户1”:{
“id”:3
},
“用户2”:{
“id”:6
}
}
var result=Object.entries(json.map)([k,o])=>Object.assign(o,{name:k}));

控制台日志(结果)
您可以使用
Object.entries
将对象转换为数组。使用
map
在数组中循环,并使用
对象。分配
构造新对象

var json={
“用户3”:{
“id”:1
},
“用户1”:{
“id”:3
},
“用户2”:{
“id”:6
}
}
var result=Object.entries(json.map)([k,o])=>Object.assign(o,{name:k}));

控制台日志(结果)另一种方法,使用:

将提供:

[ { name: 'user3', id: 1 },
  { name: 'user1', id: 3 },
  { name: 'user2', id: 6 } ]

另一种方法是使用:

将提供:

[ { name: 'user3', id: 1 },
  { name: 'user1', id: 3 },
  { name: 'user2', id: 6 } ]

非常感谢。是的,地图的定义更简单谢谢。是的,地图的定义更简单