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
Post a Comment