lodash - How to filter array of objects from keys in javascript? -


here, have 1 main array called mainarray. in array added multiple users list. can increased. can create many group mainarray, group1, group2 , on. requirement is, want filter objects mainarray, haven't added in groups.

array main,

var mainarray = [{   userid: "m000001",   name: "jhon",   companyid: "c0000021" }, {   userid: "m000002",   name: "leon",   companyid: "c0000022" }, {   userid: "m000003",   name: "thomas",   companyid: "c0000023" }, {   userid: "m000004",   name: "sean",   companyid: "c0000024" }, {   userid: "m000005",   name: "paul",   companyid: "c0000025" }, {   userid: "m000006",   name: "roldan",   companyid: "c0000026" }, {   userid: "m000007",   name: "mike",   companyid: "c0000027" }, {   userid: "m000008",   name: "mia",   companyid: "c0000028" }]; 

groups,

var group1 = [{   userid: "m000004",   name: "sean",   companyid: "c0000024" }, {   userid: "m000005",   name: "paul",   companyid: "c0000025" }];  var group2 = [{   userid: "m000002",   name: "leon",   companyid: "c0000022" }, {   userid: "m000003",   name: "thomas",   companyid: "c0000023" }, {   userid: "m000001",   name: "john",   companyid: "c0000021" }]; 

joined group ids,

var joinedgroupids = ["m000004", "m000005", "m000002", "m000003", "m000001"]; 

the output want be,

var result = [{   {     userid: "m000006",     name: "roldan",     companyid: "c0000026"   }, {     userid: "m000007",     name: "mike",     companyid: "c0000027"   }, {     userid: "m000008",     name: "mia",     companyid: "c0000028"   } }]; 

my javascript code,

var joingroup, joinedgroupids = []; joingroup = group1.concat(group2); 

concatinated group ids,

joinedgroupids.map(function(el){   joinedgroupids.push(el.userid); }); 

filter objects main array,

var result = mainarray.filter(function(item) {   if (joinedgroupids.indexof(item.userid) !== -1) return item; }); 

indexof not work searching inside arrays. use .findindex

var result = mainarray.filter(function(x) {   return joinedgroup.findindex(function(y) {     return y.userid === x.userid   }) === -1 }) 

var mainarray = [{    userid: "m000001",    name: "jhon",    companyid: "c0000021"  }, {    userid: "m000002",    name: "leon",    companyid: "c0000022"  }, {    userid: "m000003",    name: "thomas",    companyid: "c0000023"  }, {    userid: "m000004",    name: "sean",    companyid: "c0000024"  }, {    userid: "m000005",    name: "paul",    companyid: "c0000025"  }, {    userid: "m000006",    name: "roldan",    companyid: "c0000026"  }, {    userid: "m000007",    name: "mike",    companyid: "c0000027"  }, {    userid: "m000008",    name: "mia",    companyid: "c0000028"  }];    var group1 = [{    userid: "m000004",    name: "sean",    companyid: "c0000024"  }, {    userid: "m000005",    name: "paul",    companyid: "c0000025"  }];  var group2 = [{    userid: "m000002",    name: "leon",    companyid: "c0000022"  }, {    userid: "m000003",    name: "thomas",    companyid: "c0000023"  }, {    userid: "m000001",    name: "john",    companyid: "c0000021"  }];  var joinedgroup = group1.concat(group2);    var result = mainarray.filter(function(x) {    return joinedgroup.findindex(function(y) {      return y.userid === x.userid    }) === -1  })    console.log(result)

save userids in joinedgroup

var joinedgroup = []; group1.foreach(x => joinedgroup.push(x.userid)) group2.foreach(x => joinedgroup.push(x.userid))  var result = mainarray.filter(function(x) {   return joinedgroup.indexof(x.userid) === -1 }) 

var mainarray = [{    userid: "m000001",    name: "jhon",    companyid: "c0000021"  }, {    userid: "m000002",    name: "leon",    companyid: "c0000022"  }, {    userid: "m000003",    name: "thomas",    companyid: "c0000023"  }, {    userid: "m000004",    name: "sean",    companyid: "c0000024"  }, {    userid: "m000005",    name: "paul",    companyid: "c0000025"  }, {    userid: "m000006",    name: "roldan",    companyid: "c0000026"  }, {    userid: "m000007",    name: "mike",    companyid: "c0000027"  }, {    userid: "m000008",    name: "mia",    companyid: "c0000028"  }];    var group1 = [{    userid: "m000004",    name: "sean",    companyid: "c0000024"  }, {    userid: "m000005",    name: "paul",    companyid: "c0000025"  }];  var group2 = [{    userid: "m000002",    name: "leon",    companyid: "c0000022"  }, {    userid: "m000003",    name: "thomas",    companyid: "c0000023"  }, {    userid: "m000001",    name: "john",    companyid: "c0000021"  }];    var joinedgroup = [];  group1.foreach(x => joinedgroup.push(x.userid))  group2.foreach(x => joinedgroup.push(x.userid))    var result = mainarray.filter(function(x) {    return joinedgroup.indexof(x.userid) === -1  })    console.log(result)


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -