Javascript 数组中的对象拼接未给出正确的结果

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

在我的应用程序中,我想在匹配时拼接数组中的对象,我使用lodash函数进行拼接,如下所示,不幸的是json拼接不正确

有人能给我一些关于这个问题的建议吗

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
    }
}