How To Filter Data In Array Loop
In my array is like this, var myColumnDefs = [ {a: 'hh', b: 'hh', c: 'jk', d: 'ggh', e: 'hvh'}, {a: 'dd', b: 'gg', d: 'nn', e: 'rr', f: 'jj'},..... ] I want to filter da
Solution 1:
Assuming you want the result in arrays, then this should work. The result is in an object for further processing.
var myColumnDefs = [{ a: "hh", b: "hh", c: "jk", d: "ggh", e: "hvh" }, { a: "dd", b: "gg", d: "nn", e: "rr", f: "jj" }],
result = function (array) {
var r = { keys: [], data: [] };
array.forEach(function (a) {
r.data.push(Object.keys(a).map(function (k) {
!~r.keys.indexOf(k) && r.keys.push(k);
return a[k];
}));
});
return r;
}(myColumnDefs);
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
Solution 2:
You can use map()
and indexOf()
and do something like this
var myColumnDefs = [
{
a: "hh",
b: "hh",
c: "jk",
d: "ggh",
e: "hvh"
},
{
a: "dd",
b: "gg",
d: "nn",
e: "rr",
f: "jj"
}
];
var arr1 = [],
arr2 = [];
// iterate over `myColumnDefs` array and generate value array
arr2 = myColumnDefs.map(function(v, i) {
// get keys from objectvar keys = Object.keys(v);
// iterate over key values and generate the value array and then returnreturn keys.map(function(k) {
// check key value is in `arr1`, push if notif (arr1.indexOf(k) == -1)
arr1.push(k);
// return corresponding value based on keyreturn v[k];
});
});
document.write('First Array : <pre>' + JSON.stringify(arr1, null, 3) + '</pre> Second Array : <pre>' + JSON.stringify(arr2, null, 3) + '</pre>');
Solution 3:
Assuming that mysecondarray is having an array of array of values in the same order.
try
var columns = {}; //newarray var values = []; //mysecondarray
myColumnDefs.forEach(function(value){
var arr = [];
for (var key in value)
{
columns[key] = true;
arr.push(value[key]);
}
values.push(arr);
})
console.log("columns are " + JSON.stringify(Object(columns).keys, 0, 4));
console.log("values are " + JSON.stringify(values, 0, 4));
Post a Comment for "How To Filter Data In Array Loop"