我有一个对象数组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 是否作为 contains() 工作?我的意思是我有我试图过滤的 account_numberorsV5zWHquBX_orCvEx4YdQxP_1903
和它过滤的那个是orsV5zWHquBX_orCvEx4YdQxP_1
.