我的数据
var data={
key:value,
key:value,
key:value
};
预期输出
var data=[
{key:value},
{key:value},
{key:value}
];
答案 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.keys
和Array#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;}