jQuery.grep和超过1个条件

时间:2013-06-13 16:33:37

标签: javascript jquery

var matches = $.grep($.trolley, function(element){ 
    if ((element.id == grocery.id) && (element.dimensions == grocery.dimensions)) {
        console.log('t'); 
    } else { 
        console.log('f'); 
    } 
});

所以我说3项。 id 1 dimensions 4, id 2 dimensions 8, id 2 dimensions 8

我想找到不在数组中的项目,但只要它匹配数组中已有id的项目,它就会返回匹配...即使{{ 1}}不同:(

http://jsfiddle.net/justrealmilk/6SSKj/

1 个答案:

答案 0 :(得分:2)

过滤函数需要返回truefalse,具体取决于测试是否成功(实际上,只需要true情况,但两者都更清晰,恕我直言):< / p>

var matches = $.grep($.trolley, function(element){ 
    if ((element.id == grocery.id) && (element.dimensions == grocery.dimensions)) {
        console.log('t'); 
        return true;
    } else { 
        console.log('f');
        return false;
    } 
});

由于您没有返回任何内容,因此会隐式返回undefined,这应该会导致空matches。我不确定你为什么会得到任何东西,更不用说第一个匹配的id