私はちょうどロダッシュについて学び始め、それを自分のコードに組み込もうとしました。あなたが見ることができるように私は従業員の下の各要素の重みを追加しています。問題は私が抱えていることです。最終的なデータの配列に3番目の要素「性別」をどうやって取得するかわかりません。私はこのReduce array of objects on key and sum value into arrayを使って私のlodashコードを作りました。私の出力をどのように取得しようとしているかについては、以下を参照してください。ここでオブジェクトの配列のlodashの合計
var userAns = [{
id: 1,
text: "answer1",
employee: [{
name: "John",
weight: 3,
gender: "male"
},
{
name: "Sally",
weight: 4,
gender: "female"
}
]
},
{
id: 2,
text: "answer2",
employee: [{
name: "John",
weight: 6,
gender: "male"
},
{
name: "Sally",
weight: 3,
gender: "female"
}
]
}
];
var scores = [];
for (var i = 0; i < userAns.length; i++) {
for (var j = 0; j < userAns[i].employee.length; j++) {
scores.push(userAns[i].employee[j]);
}
}
var result = _(scores)
.map('name')
.uniq()
.map(function(key) {
return {
name: key,
score: _(scores).filter({
name: key
}).sumBy('weight')
};
})
.value();
console.log(result);
<script src="https://cdn.jsdelivr.net/lodash/4.14.1/lodash.min.js"></script>
どのキー私は私の配列
[
{
"name": "John",
"score": 9,
"gender": "male"
},
{
"name": "Sally",
"score": 7,
"gender":"female"
}
]
このソリューションは私のために働き、forループを削除し、残りのコードと整列します。 – user990951