javascript - 即使发生匹配,$.grep 也会返回空数组

标签 javascript jquery arrays

我真的很困惑为什么我的 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;

如果没有 returne.id != 2; 不会执行任何操作:该表达式的结果会消失。那么 $.grep 回调函数的返回值对于所有元素来说都是 undefined,这是假的,因此没有一个元素匹配,从而导致一个空数组。

关于javascript - 即使发生匹配,$.grep 也会返回空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38533526/

相关文章:

javascript - 改进代码 "content changer"

javascript - 无法获取此条件语句以将列调整回来

php mysql select函数返回0但没有错误

java - 按数组中的值对对象列表进行排序;

c++ - 谁可以帮助解释我的代码中有什么问题..在 C++ 中计算数组的种类

javascript - 使用 React Native 将一个数组拆分为两个数组

javascript - 如何在 Jquery 中成功调用 POST API 后重定向到新页面

javascript - 是否可以将文本选择限制为当前元素?

jquery - 如何使用 jQuery 使用 animate 和逗号来增加数字?

javascript - 更改显示:none with jquery with if-else