Проверьте один объект json, передав два разных значения с одним и тем же свойством с помощью underscore.js

#underscore.js

#underscore.js

Вопрос:

Каждый раз передаю один объект 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 я не должен получать object why, потому что в параметре scound нет роли 3. не могли бы вы, пожалуйста, сказать, какой объект _.js я могу использовать или что мне нужно для изменения входного 2-го параметра

Примечание: этот вопрос относится к сценарию in operator в sql server, где мы можем передавать несколько значений в одном столбце.

Комментарии:

1. Следует ли RoleId с помощью role ? Вы не можете сопоставить оба, используя findWhere , я добавлю ответ, который не нуждается в подчеркивании

2. Извините, измененный вопрос по RoleId.

3. Я обновил свой ответ, чтобы охватить RoleId

Ответ №1:

Вы можете сделать это без 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);  

Комментарии:

1. Потрясающее решение, но я ищу решение с помощью подчеркивания. разве это невозможно с ним?

2. @lucky почему вы хотите использовать подчеркивание, когда это возможно в vanilla js?

3. Это приложение разрабатывается с использованием asp.net используя только jquery, я ввел только undercorejs в этом приложении.

4. @lucky Конечно, но почему вы хотите использовать подчеркивание здесь? Вам не нужны никакие библиотеки для использования кода в моем фрагменте