Javascript 函数使用一个或多个条件查找数组中的对象
我正在寻找一个普通的javascript解决方案来使用一个或多个条件查找对象 理想情况下,我希望使用与lodash.find类似的语法,以及可以接受一个或多个条件的可重用函数:Javascript 函数使用一个或多个条件查找数组中的对象,javascript,Javascript,我正在寻找一个普通的javascript解决方案来使用一个或多个条件查找对象 理想情况下,我希望使用与lodash.find类似的语法,以及可以接受一个或多个条件的可重用函数: _.find(products, {code:"BLK") _.find(products, {code:"BLK", sale: false}) 在我的例子中,我正在寻找一个对象,因此我更喜欢find而不是filter const产品=[ { 标题:“衬衫”, 颜色:“黑色”, 代码:“BLK”, 销售:对 },
_.find(products, {code:"BLK")
_.find(products, {code:"BLK", sale: false})
在我的例子中,我正在寻找一个对象,因此我更喜欢find
而不是filter
const产品=[
{
标题:“衬衫”,
颜色:“黑色”,
代码:“BLK”,
销售:对
},
{
标题:“更好的衬衫”,
颜色:“黑色”,
代码:“BLK”,
销售:假
},
{
标题:“蓝色衬衫”,
颜色:“蓝色”,
代码:“BLU”,
销售:假
}
]
//使用多个条件查找Lodash
log(u.find(产品,{代码:“BLK”,销售:false}))
//使用一个条件查找所有
log(products.filter(product=>product.color=='Black'))
//查找具有多个条件的单个
console.log(products.find(product=>product.color=='Black'和&product.sale==false))
您可以使用数组.prototype.find
克隆lodash行为,并在回调中使用数组.prototype.each()检查所提供数组中各个对象的每个键和值,以及作为第二个参数传递的筛选器对象obj
:
const产品=[
{
标题:“衬衫”,
颜色:“黑色”,
代码:“BLK”,
销售:对
},
{
标题:“更好的衬衫”,
颜色:“黑色”,
代码:“BLK”,
销售:假
},
{
标题:“蓝色衬衫”,
颜色:“蓝色”,
代码:“BLU”,
销售:假
}
]
功能查找(arr、obj){
返回arr.find((ele)=>{
返回obj&&Object.keys(obj.every)(key=>ele[key]==obj[key]);
})| | arr[0];
}
//使用多个条件查找Lodash
log(查找(产品,{代码:“BLK”,销售:false});
log(查找(产品,{title:“Blue Shirt”,sale:false});
console.log(查找(产品,未定义));
log(查找(产品,{}));
log(find(products,{title:'Better Shirt',sale:true}))
看看lodash的源代码?我理解了这个问题并有了答案。有人能再打开这个吗?这里有一个简单的答案:为什么把一个问题标记为“不清楚”会让它无法回答?如果有人能回答,这显然是足够清楚的。应该作为一个复制品或完美的