JavaScript Filter Array Of Objects Based On Property Values
I have an array of objects in javascript. The contents look like this; obj_array = [{ 'DATA_ID': 1, 'DATA_NAME': 'Dim', 'DATA_BB_TYP': 2, 'DATA_MAC'
Solution 1:
You can try the below methods 1 and 2:
Method 1: (Using filter
)
Note: This will return a new array and won't modify the original array.
var obj_array = [{
"DATA_ID": 1,
"DATA_NAME": "Dim",
"DATA_BB_TYP": 2,
"DATA_MAC": "5474",
},
{
"DATA_ID": 3,
"DATA_NAME": "Spre",
"DATA_BB_TYP": 33,
"DATA_MAC": "8e30",
},
{
"DATA_ID": 2,
"DATA_NAME": "Dimb",
"DATA_BB_TYP": 2,
"DATA_MAC": "45e8",
},
{
"DATA_ID": 4,
"DATA_NAME": "Kht1",
"DATA_BB_TYP": 35,
"DATA_MAC": "58d0",
},
{
"DATA_ID": 6,
"DATA_NAME": "Sens",
"DATA_BB_TYP": 34,
"DATA_MAC": "d004",
}
];
var retained = [2, 34];
var new_obj_array = obj_array.filter(function(obj) {
if(retained.indexOf(obj.DATA_BB_TYP) === -1) {
return false;
}
return true;
});
console.log(new_obj_array);
Method 2: (Basic version if you intend to use this in browser since filter
won't be supported by old browsers)
var obj_array = [{
"DATA_ID": 1,
"DATA_NAME": "Dim",
"DATA_BB_TYP": 2,
"DATA_MAC": "5474",
},
{
"DATA_ID": 3,
"DATA_NAME": "Spre",
"DATA_BB_TYP": 33,
"DATA_MAC": "8e30",
},
{
"DATA_ID": 2,
"DATA_NAME": "Dimb",
"DATA_BB_TYP": 2,
"DATA_MAC": "45e8",
},
{
"DATA_ID": 4,
"DATA_NAME": "Kht1",
"DATA_BB_TYP": 35,
"DATA_MAC": "58d0",
},
{
"DATA_ID": 6,
"DATA_NAME": "Sens",
"DATA_BB_TYP": 34,
"DATA_MAC": "d004",
}
];
var retained = [2, 34];
for(var i = obj_array.length - 1; i >= 0; i--) {
var obj = obj_array[i];
if(retained.indexOf(obj.DATA_BB_TYP) === -1) {
obj_array.splice(i, 1);
}
}
console.log(obj_array);
Post a Comment for "JavaScript Filter Array Of Objects Based On Property Values"