分解许多javascript对象

分解许多javascript对象,javascript,arrays,Javascript,Arrays,我在一个长数组中有几个javascript对象,例如: [{"name": "bob", "values": {"A": 1, "B": 2, "C": 3}}, {"name": "ted", "values": {"A": 4, "B": 5, "C": 6}}, ... ] 将此阵列转换为以下内容的干净快速的方法是什么: [{"name": "bob", "A": 1}, {"name": "bob", "B": 2}, {"name": "bo

我在一个长数组中有几个javascript对象,例如:

[{"name": "bob", "values": {"A": 1, "B": 2, "C": 3}}, 
 {"name": "ted", "values": {"A": 4, "B": 5, "C": 6}},
                 ...
]
将此阵列转换为以下内容的干净快速的方法是什么:

[{"name": "bob", "A": 1},
 {"name": "bob", "B": 2},
 {"name": "bob", "C": 3},
 {"name": "ted", "A": 4},
 {"name": "ted", "B": 5},
 {"name": "ted", "C": 6},
         ...
]
我对javascript有点陌生,并且对处理此任务的“正确”方式感兴趣。

通过数组进行迭代(也称为“循环”),并在每次迭代中,通过数组中包含的“值”对象进行迭代

var from = [
        {"name": "bob", "values": {"A": 1, "B": 2, "C": 3}}, 
        {"name": "ted", "values": {"A": 4, "B": 5, "C": 6}}
    ],
    to = [],
    i, person, valueKey, newObj;

for (i = 0; i < from.length; i++) {
    person = from[i];

    for (valueKey in person.values) {
        newObj = {};
        newObj.name = person.name;
        newObj[valueKey] = person.values[valueKey];

        to.push(newObj);
    }
}

console.log(to);
var from=[
{“name”:“bob”,“values”:{“A”:1,“B”:2,“C”:3},
{“name”:“ted”,“values”:{“A”:4,“B”:5,“C”:6}
],
至=[],
i、 人员,valueKey,newObj;
对于(i=0;i

使用
LoDash
,您可以执行以下操作:

var result = _.transform(people, function(memo, person) {
    var r = { name: person.name };
    _.each(person.values, function(number, letter) { r[letter] = number; });
    return memo.push(r);
});

这里有一个问题。

您同意使用LoDash这样的库来简化代码吗?是的,我同意