Javascript 如何使用下划线过滤对象数组?

Javascript 如何使用下划线过滤对象数组?,javascript,arrays,underscore.js,Javascript,Arrays,Underscore.js,(已解决,请在回答中检查解决方案) 问题: 我有一个对象数组,我希望能够只过滤那些与我指定的对象相等的对象,我尝试了很多方法,但最终我得到了相同的空数组 我认为数组返回空的,因为我迭代的是一个对象数组,而不是一个简单的数组 这里我展示了我的代码: 我还放置了下划线JS文档中显示的过滤器示例 (单击按钮以显示此结果) $(文档).ready(函数(){ /* *开始-我的过滤器使用下划线.js * */ var arrObject=[{ “数据”:[{ “img”:“test1” }, { “i

(已解决,请在回答中检查解决方案)

问题:

我有一个对象数组,我希望能够只过滤那些与我指定的对象相等的对象,我尝试了很多方法,但最终我得到了相同的空数组

我认为数组返回空的,因为我迭代的是一个对象数组,而不是一个简单的数组

这里我展示了我的代码:

我还放置了下划线JS文档中显示的过滤器示例

(单击按钮以显示此结果)

$(文档).ready(函数(){
/*
*开始-我的过滤器使用下划线.js
*
*/
var arrObject=[{
“数据”:[{
“img”:“test1”
},
{
“img”:“测试2”
},
{
“img”:“/image\u folder/sub\u folder/886.jpg”
}
]
}];
变量比较=[{
“img”:“/image\u folder/sub\u folder/886.jpg”
}];
var finalArray;
//console.log(arobject);
//console.log(比较);
$.each(对象、函数(索引、元素){
//console.log(element.data);
finalArray=\过滤器(element.data,函数(ev){
返回ev==比较;
});
});
控制台日志(finalArray);
/*
*使用下划线.js结束我的过滤器
*
*/
/*
*开始-文档下划线.js中的原始筛选器
*
*/
$(文档).on(“单击“,”.originalUnderscore”,函数(){
var evens=_.filter([1,2,3,4,5,6],函数(num){
返回数值%2==0;
});
控制台日志(evens);
});
/*
*END-文档underline.js中的原始筛选器
*
*/
});


单击以显示原始筛选器
,首先,在比较对象时,应使用
\uu0.isMatch(…)
,因为
==
仅比较引用
其次,您将对象
元素.data[0]
与数组
比较

因此,您的代码应该如下所示:

$(文档).ready(函数(){
常量对象=[{
“数据”:[{
“img”:“test1”
},
{
“img”:“测试2”
},
{
“img”:“/image\u folder/sub\u folder/886.jpg”
}
]
}];
常量比较={
“img”:“/image\u folder/sub\u folder/886.jpg”
};
$('.filterBtn')。在('单击',()=>{
设FilterdArray=[];
$.each(arObject,(索引,元素)=>{
FilterdArray=\过滤器(element.data,函数(ev){
返回i匹配(ev,比较);
});
log(`FilterdArray from index${index}`处元素中的数据);
console.log(filtedArray);
});
});
});


点击过滤器
非常感谢您的支持,兄弟!这个例子适合我