vicky
vicky

Reputation: 1580

JQuery nested each with parent child relationship

My json collection is

    var ds=[

{"ParentID":39,"Value":1,"Text":"LM7","Selected":false},
{"ParentID":41,"Value":2,"Text":"ud5","Selected":false},
{"ParentID":null,"Value":3,"Text":"H1a","Selected":false},
{"ParentID":40,"Value":4,"Text":"jv/","Selected":false},
{"ParentID":40,"Value":5,"Text":"axr","Selected":false},
{"ParentID":24,"Value":6,"Text":"Fay","Selected":false},
{"ParentID":24,"Value":7,"Text":"SFt","Selected":false},
{"ParentID":25,"Value":9,"Text":"3e5","Selected":false},
{"ParentID":24,"Value":11,"Text":"J7m","Selected":false},
{"ParentID":24,"Value":12,"Text":"LYD","Selected":false},
{"ParentID":24,"Value":13,"Text":"+Xt","Selected":false},
{"ParentID":null,"Value":14,"Text":"w03","Selected":false},
{"ParentID":null,"Value":15,"Text":"w03","Selected":false},
{"ParentID":null,"Value":16,"Text":"w03","Selected":false},
{"ParentID":null,"Value":17,"Text":"SFt","Selected":false},
{"ParentID":null,"Value":18,"Text":"XlG","Selected":false},
{"ParentID":null,"Value":19,"Text":"w03","Selected":false},
{"ParentID":null,"Value":20,"Text":"rd7","Selected":false},
{"ParentID":null,"Value":21,"Text":"BJf","Selected":false},
{"ParentID":null,"Value":22,"Text":"jIl","Selected":false},
{"ParentID":null,"Value":23,"Text":"Nws","Selected":false},
{"ParentID":null,"Value":24,"Text":"bIQ","Selected":false},
{"ParentID":null,"Value":25,"Text":"3e5","Selected":false},
{"ParentID":null,"Value":26,"Text":"DTo","Selected":false},
{"ParentID":null,"Value":27,"Text":"g/F","Selected":false},
{"ParentID":null,"Value":28,"Text":"J7m","Selected":false},
{"ParentID":null,"Value":29,"Text":"enF","Selected":false},
{"ParentID":null,"Value":30,"Text":"enF","Selected":false},
{"ParentID":null,"Value":31,"Text":"+Xt","Selected":false},
{"ParentID":null,"Value":32,"Text":"l9g","Selected":false},
{"ParentID":null,"Value":33,"Text":"7Ct","Selected":false},
{"ParentID":null,"Value":34,"Text":"LYD","Selected":false},
{"ParentID":null,"Value":35,"Text":"7D2","Selected":false},
{"ParentID":null,"Value":36,"Text":"7D2","Selected":false},
{"ParentID":null,"Value":37,"Text":"1+/","Selected":false},
{"ParentID":37,"Value":38,"Text":"cIF","Selected":false},
{"ParentID":null,"Value":39,"Text":"D6a","Selected":false},
{"ParentID":null,"Value":40,"Text":"0lt","Selected":false},
{"ParentID":null,"Value":41,"Text":"GaW","Selected":false},
{"ParentID":3,"Value":42,"Text":"w03","Selected":false},
{"ParentID":3,"Value":43,"Text":"+AK","Selected":false},
{"ParentID":3,"Value":44,"Text":"rHp","Selected":false},
{"ParentID":3,"Value":45,"Text":"mZL","Selected":false},
{"ParentID":3,"Value":46,"Text":"+Xt","Selected":false},
{"ParentID":40,"Value":47,"Text":"+Xt","Selected":false},
{"ParentID":40,"Value":48,"Text":"jv/","Selected":false},
{"ParentID":40,"Value":49,"Text":"J7m","Selected":false},
{"ParentID":40,"Value":50,"Text":"jv/","Selected":false},
{"ParentID":40,"Value":51,"Text":"x7z","Selected":false},
{"ParentID":40,"Value":52,"Text":"jv/","Selected":false},
{"ParentID":40,"Value":53,"Text":"1tz","Selected":false},
{"ParentID":40,"Value":54,"Text":"jv/","Selected":false},
{"ParentID":40,"Value":55,"Text":"Jks","Selected":false},
{"ParentID":40,"Value":56,"Text":"cMU","Selected":false},
{"ParentID":40,"Value":57,"Text":"Jks","Selected":false},
{"ParentID":40,"Value":58,"Text":"m6m","Selected":false},
{"ParentID":40,"Value":59,"Text":"FBR","Selected":false},
{"ParentID":40,"Value":60,"Text":"FBR","Selected":false},
{"ParentID":40,"Value":61,"Text":"6+K","Selected":false},
{"ParentID":40,"Value":62,"Text":"6+K","Selected":false},
{"ParentID":null,"Value":63,"Text":"vOw","Selected":false},
{"ParentID":63,"Value":64,"Text":"vOw","Selected":false},
{"ParentID":40,"Value":65,"Text":"UJq","Selected":false},
{"ParentID":40,"Value":66,"Text":"UJq","Selected":false},
{"ParentID":63,"Value":67,"Text":"vOw","Selected":false},
{"ParentID":null,"Value":68,"Text":"DQZ","Selected":false},
{"ParentID":68,"Value":69,"Text":"DQZ","Selected":false},
{"ParentID":68,"Value":70,"Text":"DQZ","Selected":false},
{"ParentID":68,"Value":71,"Text":"DQZ","Selected":false}

]

I am looking for a nested loop using $.each where outer loop is

ParendID=null

and inner loop is where

value=ParendID 

Something like.

$.each(ds.Where(o=>o.ParendID==null),functhion(index,item){
     //....sum code here....
     $.each(item,function(index1,inneritem){
         //....sum code here....
     });
});

is there any easy way.

Upvotes: 0

Views: 111

Answers (2)

Andreas
Andreas

Reputation: 21881

Array.prototype.filter and Array.prototype.forEach will do the job

var ds = [
  {"ParentID":39,"Value":1,"Text":"LM7","Selected":false},
  {"ParentID":41,"Value":2,"Text":"ud5","Selected":false},
  {"ParentID":null,"Value":14,"Text":"w03","Selected":false},
  {"ParentID":null,"Value":15,"Text":"w03","Selected":false},
  {"ParentID":null,"Value":16,"Text":"w03","Selected":false},
  {"ParentID":null,"Value":17,"Text":"SFt","Selected":false},
  {"ParentID":null,"Value":18,"Text":"XlG","Selected":false},
  {"ParentID":null,"Value":39,"Text":"D6a","Selected":false},
  {"ParentID":null,"Value":40,"Text":"0lt","Selected":false},
  {"ParentID":null,"Value":41,"Text":"GaW","Selected":false},
  {"ParentID":40,"Value":62,"Text":"6+K","Selected":false},
  {"ParentID":null,"Value":63,"Text":"vOw","Selected":false},
  {"ParentID":63,"Value":64,"Text":"vOw","Selected":false}
];

ds.filter((o) => o.ParentID === null)
  .forEach((o) => console.log(o));

Upvotes: 1

guest271314
guest271314

Reputation: 1

You can use $.grep() to filter objects having ParentID where value is null

var items = $.grep(ds, (o) => o.ParentID == null);
$.each(items, (index1, inneritem) => /* do stuff */);

Upvotes: 0

Related Questions