分解许多javascript对象
我在一个长数组中有几个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
[{"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这样的库来简化代码吗?是的,我同意