使用lodash,當一個數組的id爲一個字符串時,如何通過比較id來合併兩個數組,另一個數組的id是一個字符串數?當每個數組中的id是不同類型(字符串,數字)時合併兩個數組
var a = [{
id: 1,
item: 1
}, {
id: 2,
item: 2
}, {
id: 3,
item: 4
}];
var b = [{
id: "1",
profile: 1
}, {
id: "2",
profile: 2
}];
這就是我試過的。如果兩個數組中的ids都是字符串,或者兩個id都是數字,這可以正常工作。添加toString()或parseInt似乎也不工作。
return _.map(a, function(obj) {
return _.assign(obj, _.find(b, {
id: obj.id
}));
});
是否有一種方法,使對所得到的陣列中的所有是數字的ID?你說的方式,ids 1和2是字符串,id 3是一個數字。 – JAck28
@ JAck28當然。只需將'_.assign()'的輸出分配給一個變量,並在將其返回到__map()'之前,將id值更改爲字符串或整型:https://jsfiddle.net/ugL7z0oy/。 –
謝謝,那有效。 – JAck28