У меня есть массив объектов 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
.