Javascript 使用lodash过滤出属性
Javascript 使用lodash过滤出属性,javascript,lodash,Javascript,Lodash,myItems可能如下所示: const ACCEPTABLE_ITEMS = { APPLE: true, ORANGE: true, MANGO: true }; 我想筛选出myItems,以便它只包含可接受的\u ITEMS中提到的属性。我怎样才能用lodash做到这一点 我试过做这样的事,但我觉得不对: { apple: true, orange: true, mango: true, grapes: true, carrots: true
myItems
可能如下所示:
const ACCEPTABLE_ITEMS = {
APPLE: true,
ORANGE: true,
MANGO: true
};
我想筛选出myItems,以便它只包含可接受的\u ITEMS
中提到的属性。我怎样才能用lodash做到这一点
我试过做这样的事,但我觉得不对:
{
apple: true,
orange: true,
mango: true,
grapes: true,
carrots: true
}
您可以使用
.pick
方法:
myItems = _.filter(myItems, (i) => {return ACCEPTABLE_ITEMS[i];});
基本上,myItems属性名称可以是小写的。我如何修改它以使其仍能工作
如果要忽略这些情况,一个选项是:
_.pick(myItems, _.keys(ACCEPTABLE_ITEMS))
您可以使用
.pick
方法:
myItems = _.filter(myItems, (i) => {return ACCEPTABLE_ITEMS[i];});
基本上,myItems属性名称可以是小写的。我如何修改它以使其仍能工作
如果要忽略这些情况,一个选项是:
_.pick(myItems, _.keys(ACCEPTABLE_ITEMS))
您可以使用
pickBy
:
工作代码段:p
var可接受的项目={
苹果:没错,
橙色:是的,
芒果:没错
};
var myItems={
苹果:没错,
橙色:是的,
芒果:是的,
葡萄:是的,
胡萝卜:没错
}
myItems=uu.pickBy(myItems,函数(i,键){
返回可接受的_项[键];
});
console.log(myItems)代码>
您可以使用pickBy
:
工作代码段:p
var可接受的项目={
苹果:没错,
橙色:是的,
芒果:没错
};
var myItems={
苹果:没错,
橙色:是的,
芒果:是的,
葡萄:是的,
胡萝卜:没错
}
myItems=uu.pickBy(myItems,函数(i,键){
返回可接受的_项[键];
});
console.log(myItems)代码>
也许吧?也许吧?谢谢,我对我的问题做了一个小小的改变。基本上,myItems属性名称可以是小写的。我怎样才能修改它使它仍然工作?谢谢,我对我的问题做了一个小的改变。基本上,myItems属性名称可以是小写的。我怎样才能修改它使它仍然工作?谢谢,我对我的问题做了一个小的改变。基本上,myItems属性名称可以是小写的。我怎样才能修改它使它仍然工作?@Prabhu:是的,它可以通过使用toUpperCase()
查看答案中的更新谢谢。我唯一要做的就是从挑剔变成挑剔。也许版本不同。谢谢,我对我的问题做了一个小小的改变。基本上,myItems属性名称可以是小写的。我怎样才能修改它使它仍然工作?@Prabhu:是的,它可以通过使用toUpperCase()
查看答案中的更新谢谢。我唯一要做的就是从挑剔变成挑剔。也许版本不同。