How to filter array when object key value is in array How to filter array when object key value is in array angularjs angularjs

How to filter array when object key value is in array


You can do it with Array.prototype.filter(),

var data = { records : [{ "empid": 1, "fname": "X", "lname": "Y" }, { "empid": 2, "fname": "A", "lname": "Y" }, { "empid": 3, "fname": "B", "lname": "Y" }, { "empid": 4, "fname": "C", "lname": "Y" }, { "empid": 5, "fname": "C", "lname": "Y" }] }var empIds = [1,4,5]var filteredArray = data.records.filter(function(itm){  return empIds.indexOf(itm.empid) > -1;});filteredArray = { records : filteredArray };

If​ the ​callBack​ returns a ​true​ value, then the ​itm​ passed to that particular callBack will be filtered out. You can read more about it here.​​​​​​


In 2019 using ES6:

const ids = [1, 4, 5],  data = {    records: [{      "empid": 1,      "fname": "X",      "lname": "Y"    }, {      "empid": 2,      "fname": "A",      "lname": "Y"    }, {      "empid": 3,      "fname": "B",      "lname": "Y"    }, {      "empid": 4,      "fname": "C",      "lname": "Y"    }, {      "empid": 5,      "fname": "C",      "lname": "Y"    }]  };data.records = data.records.filter( i => ids.includes( i.empid ) );console.info( data );