Tur*_*ets 11 javascript arrays object ecmascript-6 spread-syntax
我正在尝试转换这样的数据结构:
data = {
0:{A:a},
1:{B:b},
2:{C:c},
}
Run Code Online (Sandbox Code Playgroud)
进入这样的结构:
[
{0:{A:a}},
{1:{B:b}},
{2:{C:c}},
]
Run Code Online (Sandbox Code Playgroud)
像这样使用spread运算符:[...data]返回任何空数组.
我也试过了 [{...data}]
有没有办法使用扩展运算符来获得所需的结果?另外,为什么这种方法不起作用?
它不起作用,因为根据MDN文档
"ECMAScript提案的Rest/Spread属性(第3阶段)将扩展属性添加到对象文字.它将自己的可枚举属性从提供的对象复制到新对象上."
Object.keys().map()尽管如此,你可以很容易地做你想做的事情.
var data = {
0:{A:"a"},
1:{B:"b"},
2:{C:"c"},
}
var result = Object.keys(data).map(function (key) {
return { [key]: data[key] };
});
console.log(result);Run Code Online (Sandbox Code Playgroud)
您可以使用Object.entries获取[key,value]对,并使用计算属性名称将它们映射到对象数组:
const data = {
0:{A: 'a'},
1:{B: 'b'},
2:{C: 'c'}
};
const result = Object.entries(data).map(([key, value]) => ({ [key]: value }));
console.log(result);Run Code Online (Sandbox Code Playgroud)