var a = [
{aId: 1, name: "a1"},
{aId: 2, name: "a2"}
];
var b = [
{parentId: 1, description: "b1"},
{parentId: 1, description: "b2"},
{parentId: 2, description: "b3"}
];
。
私がやった:
var c = _.map(a, function(obj) {
return _.assign(obj, _.find(b, {parentId: obj.aId}));
})
予想通りこれは動作しますが、私はそれが重複を処理する必要がある - これは一致を検出するとき、それは正しく、それをマージしますが、私の代わりにプッシュし、それを必要としますマージの代わりに新しいプロパティにマージします。
は、私が何を得る:
[
{aId: 1, name: "a1", description: "b1"},
{aId: 2, name: "a2", description: "b3"}
]
は、私が欲しいもの:
[
{
aId: 1,
name: "a1",
b: [
{parentId: 1, description: "b1"},
{parentId: 1, description: "b2"}
]
},
{
aId: 2,
name: "a2",
b: [
{parentId: 2, description: "b1"}
]
}
]
共通プロパティはもちろん、省略することができます。
あなたは配列に一致するすべての結果を取得し、それに応じてマッピングを更新するように代わり_.find' 'の_.filter''使用します。 – Shilly
ありがとう、そのトリックをした – Zoidy