下划线 从对象元素创建对象数组

Underscore Create array of objects from object elements

本文关键字:创建对象 数组 元素 对象 下划线      更新时间:2023-09-26

你好,我有这样的对象:

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
    });
});

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

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

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

http://underscorejs.org/#map

你也可以只使用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}]