每次都会传递一个JSON对象,但角色值会更改,我需要根据_.findWhere
对象使用一个值来根据角色进行验证,但我希望在同一属性中具有两个不同角色的验证。
方案1
var people = [
{"name": "ram", "RoleID": "2"}
];
var roleObj = _.findWhere(people , { RoleID: "2", RoleID: "4"});
方案2
var people = [
{"name": "ram", "RoleID": "3"}
];
var roleObj = _.findWhere(people , { RoleID: "2", RoleID: "4"});
在方案2中,我不应该得到对象为什么为什么在没有角色3的acongon参数中。您可以告诉我可以使用哪个_.js对象或我需要更改输入第二个参数
注意:此问题是SQL Server中in
运算符的方案,我们可以在单列中传递多个值。
您可以使用filter
无需underscore
。只需滤除那些没有出现在指定角色列表中的人:
var people = [{
"name": "ram",
"RoleId": "3"
}];
var peopleTwo = [{
"name": "ram",
"RoleId": "2"
}];
var getRoleFilterer = roles =>
people =>
people.filter(person => roles.indexOf(person.RoleId) > -1);
var roleFilterer = getRoleFilterer(["2", "4"]);
var results = roleFilterer(people);
var resultsTwo = roleFilterer(peopleTwo);
console.dir(results);
console.dir(resultsTwo);