Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $.grep即使在匹配发生时也返回空数组_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript $.grep即使在匹配发生时也返回空数组

Javascript $.grep即使在匹配发生时也返回空数组,javascript,jquery,arrays,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) {

我真的很困惑为什么我的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;
});
然而,每次我得到的只是一个空数组。我做错了什么?

您没有返回布尔表达式。您应将其作为
返回值提供:

return  e.id != 2;
没有
返回
e.id!=2;没有任何作用:该表达式的结果消失在遗忘中。然后,对于所有元素,
$.grep
回调函数的返回值都是
未定义的
,这是错误的,因此所有元素都不匹配,从而导致一个空数组。

您没有返回布尔表达式。您应将其作为
返回值提供:

return  e.id != 2;

没有
返回
e.id!=2;没有任何作用:该表达式的结果消失在遗忘中。然后,对于所有元素,
$.grep
回调函数的返回值都是
未定义的
,这是错误的,因此所有元素都不匹配,导致数组为空。

使用grep函数中的return

$.grep($scope.kit, function(e) {
    return e.id != 2;
});
根据jquery文档


函数应返回布尔值

在grep函数中使用return

$.grep($scope.kit, function(e) {
    return e.id != 2;
});
根据jquery文档


函数应返回一个布尔值

“您需要返回该值”。。可能是一个布尔值,
未定义
假值
值+1是的,但这不是问题所在,因为
e.id!=2
是一个布尔表达式。是的,但您需要返回的值对我来说似乎不完整。。。在这种情况下,这很好。把你的评论放在心上,我做了一点更新。“你需要返回值。”。。可能是一个布尔值,
未定义
假值
值+1是的,但这不是问题所在,因为
e.id!=2
是一个布尔表达式。是的,但您需要返回的值对我来说似乎不完整。。。在这种情况下,这是好的..把你的评论放在心上,我做了一些更新。