Javascript $.grep即使在匹配发生时也返回空数组
我真的很困惑为什么我的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) {
$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
是一个布尔表达式。是的,但您需要返回的值对我来说似乎不完整。。。在这种情况下,这是好的..把你的评论放在心上,我做了一些更新。