как внутренне работает $ filter () в angularjs? - PullRequest
0 голосов
/ 09 марта 2020

У меня есть массив объектов searchArr. И еще один массив объектов arr.

searchArr = [{id: 36, user_id: "oulFlPx9Ho3U",account_number: "orsV5zWHquBX_orCvEx4YdQxP_1903", bank_name: "BANK1TEST"}]

arr = [{bank_name: "BANK1TEST", org_id: "orsV5zWHquBX", currency: "USD", account_number: "orsV5zWHquBX_orCvEx4YdQxP_1903", id: "baccD82Lu7rQ0y"}, {bank_name: "BANK1TEST", org_id: "orsV5zWHquBX", currency: "USD" account_number: "orsV5zWHquBX_orCvEx4YdQxP_1", id: "baccIRmnWaEiJm"}]

Я хочу отфильтровать все данные с одинаковыми именами и номерами телефонов на searchArr и arr. Поэтому я пишу этот код внутри arr.foreach(ar):

var foo = $filter('filter')(searchArr, {account_number: ar.account_number, bank_name: ar.bank_name})

Однако, если я распечатываю значение результата, оно получает значение [{id: 36, user_id: "oulFlPx9Ho3U",account_number: "orsV5zWHquBX_orCvEx4YdQxP_1903", bank_name: "BANK1TEST"}], напечатанное дважды, что означает, что оно не отфильтровывается точно.

Напротив, если я использую этот кусок кода, он отлично работает:

var foo = searchArr.filter(function (bar) {
   return bar.account_number === ar.account_number && bar.bank_name === ar.bank_name;
});

Это возвращает только одну запись. Я думаю, что оба из этого должны работать правильно.

Редактировать: Вопрос: $ filter работает как содержит ()? Я имею в виду, что у меня был account_number, который я пытался отфильтровать, - orsV5zWHquBX_orCvEx4YdQxP_1903, а тот, который он отфильтровал, - orsV5zWHquBX_orCvEx4YdQxP_1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...