我有一个数组模型如下:
records:[{ "empid":1,"fname": "X","lname": "Y" },{ "empid":2,"fname": "A",{ "empid":3,"fname": "B",{ "empid":4,"fname": "C",{ "empid":5,"lname": "Y" } ]
现在我有一个empid的数组[1,4,5].
所以现在我需要过滤包含我第二个中所有键的第一个数组.
输出:
records:[{ "empid":1,"lname": "Y" } ]
我可以使用角度的forEach循环来完成此操作,但因为我的模型对象中有超过100条记录.我需要一个关于如何更好地处理这个问题的建议.
我正在考虑创建一个自定义过滤器,但你对它有何看法.(如果是,请提供示例代码来实现此目的).
您的帮助得到了认可.
谢谢.
解决方法
你可以用Array.prototype.filter()做到这一点,
var data = { records : [{ "empid": 1,"lname": "Y" },{ "empid": 2,{ "empid": 3,{ "empid": 4,{ "empid": 5,"lname": "Y" }] } var empIds = [1,5] var filteredArray = data.records.filter(function(itm){ return empIds.indexOf(itm.empid) > -1; }); filteredArray = { records : filteredArray };
如果callBack返回true值,则传递给该特定callBack的itm将被过滤掉.你可以阅读更多关于它here.