Javascript jQuery.grep和多个条件

Javascript jQuery.grep和多个条件,javascript,jquery,Javascript,Jquery,所以我要说3项id 1维度4,id 2维度8,id 2维度8 我想查找不在数组中的项,但只要它与数组中已具有该id的项匹配,它就会返回一个匹配项。。。即使尺寸不同:( 根据测试是否成功,过滤函数需要返回true或false(实际上,只需要true情况,但这两种情况都更干净,IMHO): 由于您没有返回任何内容,它会隐式返回未定义的,这应该会导致一个空的匹配项。我不知道您为什么会得到任何内容,更不用说第一个匹配的id了。您如何测试此代码?您能提供一个自包含的示例吗r如果您使用|而不是&&,您所描述

所以我要说3项<代码>id 1维度4,id 2维度8,id 2维度8

我想查找不在数组中的项,但只要它与数组中已具有该
id
的项匹配,它就会返回一个匹配项。。。即使
尺寸不同
:(


根据测试是否成功,过滤函数需要返回
true
false
(实际上,只需要
true
情况,但这两种情况都更干净,IMHO):


由于您没有返回任何内容,它会隐式返回
未定义的
,这应该会导致一个空的
匹配项
。我不知道您为什么会得到任何内容,更不用说第一个匹配的
id了。您如何测试此代码?您能提供一个自包含的示例吗r如果您使用
|
而不是
&&
,您所描述的情况就会发生。即使为false,也会将“t”写入console,仍然:(尝试执行
console.log('t',元素,元素)
,也许这些东西不包含你认为它们包含的内容。你看不到这些内容在该网站上的位置。你能用小提琴制作一个SSCE吗?问题是:每次你做
杂货店=$(this)。数据('post'))
它返回的是同一个对象,而不是新的副本。该对象,而不是副本,也被推到了
$.traller
上。因此,当您执行
grovery.dimensions=$('select')。查找(“:selected”).text();
您正在修改
$.tralle
中的对象。因此尺寸匹配,因为它们是同一个对象。我非常困惑。我想我是从按钮抓取数据,根据页面中的字符串调整新对象的值,然后将其与$.tralle进行比较
var matches = $.grep($.trolley, function(element){ 
    if ((element.id == grocery.id) && (element.dimensions == grocery.dimensions)) {
        console.log('t'); 
    } else { 
        console.log('f'); 
    } 
});
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;
    } 
});