通过使用underscore.js传递具有相同属性的两个不同值来验证json单个对象

问题描述 投票:0回答:1

每次传递一个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中我不应该得到对象为什么因为在scound参数中没有角色3.你能告诉我可以使用哪个_.js对象或者我需要更改输入第二个参数

注意:这个问题是sql server中in运算符的情况,我们可以在单列中传递多个值。

underscore.js
1个回答
0
投票

你可以使用underscore在没有filter的情况下做到这一点。只需过滤掉那些角色未出现在指定角色列表中的人:

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);
© www.soinside.com 2019 - 2024. All rights reserved.