首页 > 解决方案 > $filter() 如何在 angularjs 内部工作?

问题描述

我有一个对象数组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.

标签: javascriptangularjsfilter

解决方案


推荐阅读