[{"id":1,"name":"John"},{"id":2,"name":"James"},{"id":3,"name":"Alex"}]
$.grep(Arr.nameList, function(e){
return e.id != 1;
});
console.log(Arr.nameList);
我希望得到2个数组返回约翰丢弃,但我仍然把它们全部收回,我上面的$.grep
出了什么问题?
答案 0 :(得分:1)
jQuery.grep说明:查找满足过滤函数的数组元素。原始数组不受影响。
.nameList
您不必添加任何内容Arr
。替换:
$.grep(Arr.nameList , function(e){
return e.id != 1;
});
通过:
var result = $.grep(Arr , function(e){
return e.id != 1;
});
你可以找到grep:
的结果console.log(result);
查看 Working fiddle 。
答案 1 :(得分:0)
$.grep()
返回一个新的过滤数组,不会影响原始数组。
尝试:
var filteredArray = $.grep(Arr.nameList, function(e){
return e.id != 1;
});
console.log(filteredArray);
您正在做的是创建一个新的过滤数组,但忽略它并检查原始未受影响的数组
的 DEMO 强>