通过匹配对象属性

时间:2017-04-11 13:00:11

标签: javascript reactjs lodash

通过单个值(例如

)很容易摆脱不匹配的对象属性



const person = [
  {name:'james',gender:'male'},
  {name:'john',gender:'male'},
  {name:'chun li',gender:'female'}
]
const gender = ['male'];

let filtered = person.filter( obj => obj.gender === 'male');

console.log(filtered)




但如果性别存在,如['male', 'female'],该怎么办?在这种情况下,有任何loadash方法可以帮助吗?

3 个答案:

答案 0 :(得分:3)

过滤器的工作方式是简单地为它提供一个函数,该函数对于您想要保留的对象(docs)返回true。考虑到这一点,如果性别为malefemale,您需要做的就是返回true。

let filtered = person.filter((entry) => {
    return (entry.gender == 'male') || (entry.gender == 'female');
})

答案 1 :(得分:3)

使用_.includes

const genders = ['male', 'female'];
let filtered = person.filter(obj => _.includes(genders, obj.gender));

答案 2 :(得分:0)

您也可以使用[] .indexOf获得所需的结果。

self.config['STATIC_FOLDER'] = value