我有以下对象数组:
var arr = [
{
id : "a1",
guid : "sdfsfd",
...
value : "abc",
status: false
},
{
id : "a2",
guid : "sdfsfd",
...
value : "def",
status: true
},
...
]
Run Code Online (Sandbox Code Playgroud)
我有这个对象:
var obj = {
id : "a1",
guid : "sdfsfd",
...
value : "xyz",
status : true
}
Run Code Online (Sandbox Code Playgroud)
我需要用"id"相同的对象替换数组中的对象.因此得到的数组将是:
var arr = [
{
id : "a1",
guid : "sdfsfd",
...
value : "xyz",
status: true
},
{
id : "a2",
guid : "sdfsfd",
...
value : "def",
status: true
},
...
]
Run Code Online (Sandbox Code Playgroud)
此外,如果具有该id的对象不存在,我需要将此对象添加到数组.
arr = _.merge_by_key(arr,obj,"id");
Run Code Online (Sandbox Code Playgroud)
您可以使用 .findIndex()
var i = arr.findIndex(o => o.id === obj.id);
if (arr[i]) { arr[i] = obj } else { arr.push(obj) };
Run Code Online (Sandbox Code Playgroud)
你可以做到 _.unionBy
var res = _.unionBy([obj], arr, 'id');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6894 次 |
| 最近记录: |