4

你好我有这样的对象:

var obj = { banana: 1425, orange: 1683}

我需要基于项目创建的对象数组。例如:

[{name: banana, value: 1425}, {name: orange, value: 1683}]

我是这样做的:

var fruits = [];
_.each(obj, function(value, name){
    fruits.push({
        name: name,
        value: value
    });
});

也许你知道更简单的方法?

4

2 回答 2

10

您可以在对象上使用下划线的 _.map :

var obj = { banana: 1425, orange: 1683};

var fruits = _.map(obj, function(value, key){
  return { name : key, value : value };
});

http://underscorejs.org/#map

于 2013-10-09T13:02:11.813 回答
0

你也可以只使用Object.entries()

let myobj = {banana: 1425, orange: 1683};
let entries = Object.entries(myobj); // => [['banana', 1425], ['orange', 1683]];


//and if you want it in array-object format:
let other_format = Object.entries(myobj).map(entry => {
    return {[entry[0]]: entry[1]}
}); // => [{banana: 1425}, {orange: 1683}]
于 2018-06-20T05:05:32.807 回答