【发布时间】:2019-05-20 11:37:54
【问题描述】:
我有一个看起来像这样的对象
{taxi: 1, food: 1, cinema: 2, drinks: 2}
我的目标是为这些属性定义一个名称,如下所示:
const expenseCategories = [
{ name: 'taxi', value: 1 },
{ name: 'food', value: 1 },
{ name: 'cinema', value: 2 },
{ name: 'drinks', value: 2},
];
这是我的尝试,我离我想要完成的目标还很远。我知道这很简单,但我很困惑..
var test = [];
for (let x in expenseCategories) {
// expenseCatAmountsObj.push(expenseCategories[x]);
test.push( Object.defineProperty({}, {name : x}, { value: expenseCategories[x] }) )
}
它只是在对象内部返回一个数组
[{…}、{…}、{…}、{…}]
【问题讨论】:
-
test.push({ name: x, value: expenseCategories[x] })或var test = Object.keys(expenseCategories).map(key => { name: key, value: expenseCategories[key] }); -
如果您想保持代码不变,只需使用
Object.assign而不是defineProperty。否则,只需按照 Chris 的建议一次性推动项目。
标签: javascript