我有一个带有键值对的javascript对象,我想将每对作为单独的对象分开并将其推入数组中,我该怎么做?
var obj = new Object();
obj = {
v1 : 'k1',
v2 : 'k2',
v3 : 'k3'
}
a =[];
Object.entries(obj).forEach(
([key, value]) => {
a.push({key : value});
});
console.log(a);
这是我的预期输出:
[{v1 : 'k1'}, {v2 : 'k2'}, {v3 : 'k3'}]
答案 0 :(得分:2)
您几乎明白了。要从变量(称为Computed property names)创建动态属性,您需要在[]
周围添加key
。否则,它只会创建一个仅带有“键”作为key
的对象:
const obj = {
v1: 'k1',
v2: 'k2',
v3: 'k3'
},
a = [];
Object.entries(obj).forEach(
([key, value]) => {
a.push({[key] : value});
});
console.log(a);
或者使用map
更简单:
const obj = {v1:'k1',v2:'k2',v3:'k3'}
,a = Object.entries(obj).map(([key, value]) => ({[key] : value}));
console.log(a);
答案 1 :(得分:1)
var obj = { v1 : 'k1', v2 : 'k2', v3 : 'k3' }
var result = []
for(var i in obj) result.push([i, obj[i]])
console.log(result)
答案 2 :(得分:1)
一种更实用的方法是在对象条目上map
,以产生新的对象数组。
var obj = { v1 : 'k1', v2 : 'k2', v3 : 'k3' }
const out = Object.entries(obj).map(([k, v]) => ({ [k]: v }));
console.log(out);