javascript – 当对象键值在数组中时如何过滤数组

前端之家收集整理的这篇文章主要介绍了javascript – 当对象键值在数组中时如何过滤数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数组模型如下:
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.

猜你在找的JavaScript相关文章