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