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()
查看答案中的更新谢谢。我唯一要做的就是从挑剔变成挑剔。也许版本不同。