我真的很困惑为什么我的 grep 函数不起作用。我有一个像这样的对象数组:
$scope.kit = [{id: 1, producer: "company", category: "hardware" },
{id: 2, producer: "company2", category: "hardware"}];
我正在尝试使用 grep 删除 id 2,我想我会这样做:
$scope.kit =
$.grep($scope.kit, function(e) {
e.id != 2;
});
然而,我每次得到的只是一个空数组。我在这里做错了什么?
最佳答案
您没有返回 bool 表达式。您应该将其作为返回
值提供:
return e.id != 2;
如果没有 return
,e.id != 2;
不会执行任何操作:该表达式的结果会消失。那么 $.grep
回调函数的返回值对于所有元素来说都是 undefined
,这是假的,因此没有一个元素匹配,从而导致一个空数组。
关于javascript - 即使发生匹配,$.grep 也会返回空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38533526/