Javascript 数组中的对象拼接未给出正确的结果
在我的应用程序中,我想在匹配时拼接数组中的对象,我使用lodash函数进行拼接,如下所示,不幸的是json拼接不正确 有人能给我一些关于这个问题的建议吗Javascript 数组中的对象拼接未给出正确的结果,javascript,lodash,splice,Javascript,Lodash,Splice,在我的应用程序中,我想在匹配时拼接数组中的对象,我使用lodash函数进行拼接,如下所示,不幸的是json拼接不正确 有人能给我一些关于这个问题的建议吗 var arr = [{ name: 'Jack', id: 125 }, { name: 'Jack', id: 125 }]; var result = _.without(arr, _.findWhere(arr, {name: 'Jack'})); console.log(JSON.stringify
var arr = [{
name: 'Jack',
id: 125
}, {
name: 'Jack',
id: 125
}];
var result = _.without(arr, _.findWhere(arr, {name: 'Jack'}));
console.log(JSON.stringify(result));
预期结果
[]
实际结果
[{"name":"Jack","id":125}]
更新1
即使使用普通的JavaScript方式,也可以提供相同的输出
for(var i = 0; i < arr.length; i++) {
var obj = arr[i];
if(obj.name === 'Jack') {
arr.splice(i, 1);
}
}
for(变量i=0;i
\此处只返回第一个匹配的元素。这样您就可以使用0.difference和0.filter或0.rest来完成任务
_.difference(arr, _.filter(arr,function(d){ return d.name = 'Jack' }));
您可以使用下面的代码使用纯javascript实现相同的功能
for(var i = 0; i < arr.length; i++) {
var obj = arr[i];
if(obj.name === 'Jack') {
arr.splice(i, 1);
i--; // Splicing of elements will cause shifting of indices in the array
}
}
for(变量i=0;i
for(var i = 0; i < arr.length; i++) {
var obj = arr[i];
if(obj.name === 'Jack') {
arr.splice(i, 1);
i--; // Splicing of elements will cause shifting of indices in the array
}
}