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

时间:2017-02-10 07:25:34

标签: javascript

我的数据

var data={
    key:value,
    key:value,
    key:value
};

预期输出

var data=[
    {key:value},
    {key:value},
    {key:value}
];

5 个答案:

答案 0 :(得分:3)

您可以使用多个ES6缩写在一个表达式中生成所需的输出:

Object.keys(data).map(key => ({[key]: data[key]}))

以下代码段演示了这一点:



const data = {
  key0:'value0',
  key1:'value1',
  key2:'value2'
};

const output = Object.keys(data).map(key => ({[key]: data[key]}));

console.log(JSON.stringify(output));




答案 1 :(得分:2)

使用Object.keysArray#map方法。

var data = {
  key: 'value',
  key1: 'value',
  key2: 'value'
};

console.log(
  // get all object property names(keys)
  Object.keys(data)
  // iterate over the keys array
  .map(function(k) {
    // generate the obect and return
    var o = {};
    o[k] = data[k];
    return o;
  })
)

答案 2 :(得分:2)

简单的in循环是一种处理这个问题的方法:



var data = {
    key:  'value',
    key1: 'value1',
    key2: 'value2'
};
var arr = []; 
for(var k in data){
    var o = {}; 
    o[k]=data[k]; 
    arr.push(o)
}
console.log(arr)




答案 3 :(得分:0)

您可以使用Object.keys获得keys

Object.keys(data)
console.log(Object.keys(data)[0]) // will print first key 

或者您可以使用Object.values获取值:

Object.values(data)
console.log(Object.values(data)[0]) // will print first key value 

答案 4 :(得分:0)

尝试这样做: -

function json2array(json){
var output = [];
var keys = Object.keys(json);
keys.forEach(function(key){
    output.push(json[key]);
});
return output;}