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

时间:2016-07-21 15:44:51

标签: javascript react-native ecmascript-6

我正在寻找一种将对象转换为对象数组的方法,并删除第一个唯一键。

我该怎么做:

{f56hdhgf54: {name: 'Sam', age: 34}, h65fg9f7d: {name: 'John', age: 42}}

进入这个:

[{name: 'Sam', age: 34}, {name: 'John', age: 42}]

所以我可以.map这样通过它:

result.map((person) => {
   console.log(person.name, person.age)
})

3 个答案:

答案 0 :(得分:5)

您可以使用Object.keys()获取密钥数组,然后使用map()将密钥更改为值或在此情况下更改对象。

var obj = {f56hdhgf54: {name: 'Sam', age: 34}, h65fg9f7d: {name: 'John', age: 42}}

var result = Object.keys(obj).map(function(e) {
  return obj[e];
});

console.log(result);

答案 1 :(得分:0)

另一种方法是使用lodash映射功能转换数据,即

let data = {
   "f56hdhgf54": {
      "name": "Sam",
       "age": 34
    },
    "h65fg9f7d": {
      "name": "John",
      "age": 42
    }
}


let result = _(data)
  .map((value, key) => (
    value
  ))


 // result
 [
   {
      "name": "Sam",
      "age": 34
   },
   {
      "name": "John",
      "age": 42
   }
]

您可以使用Lodash在线测试仪https://codepen.io/travist/full/jrBjBz来测试代码

答案 2 :(得分:-1)

使用此问题的Jquery解决方案

var xyz = [];
    var abcd = {f56hdhgf54: {name: 'Sam', age: 34}, h65fg9f7d: {name: 'John', age: 42}}
    $.each(abcd,function(i,data){

    xyz .push(data);

    })