1 var data = { 2 customers: [{ 3 id: 1, 4 firstname: 'John', 5 lastname: 'Smith', 6 sex: 'male' 7 }, { 8 id: 2, 9 firstname: 'Jessica', 10 lastname: 'Johnson', 11 sex: 'female' 12 }, { 13 id: 3, 14 firstname: 'Michael', 15 lastname: 'Williams', 16 sex: 'male' 17 }, { 18 id: 4, 19 firstname: 'Amber', 20 lastname: 'Davis', 21 sex: 'female' 22 }], 23 address: [{ 24 id: 1, 25 address: 'ynkm' 26 }, { 27 id: 2, 28 address: 'ynyx' 29 }] 30 }; 31 32 var enumerable=Enumerable.from(data.customers); 33 34 enumerable.groupBy("$.firstname.charAt(0)", "x=>x.firstname").forEach(function(group) { 35 console.log(group.key()); 36 group.forEach(function(aaa) { 37 console.log(aaa); 38 }); 39 }); 40 41 42 enumerable.groupBy("$.firstname.charAt(0)", "","key,group=>key+'-'+group.select('$.firstname').toJoinedString(',')").forEach(function(group) { 43 console.log(group); 44 }); 45 46 enumerable.toLookup("$.sex","$.firstname").toEnumerable().forEach(function(group) { 47 console.log(group.key()); 48 group.orderBy().forEach(function(aaa) { 49 console.log(aaa); 50 }); 51 }); 52 53 console.log(enumerable.toDictionary("$.firstname").get("Richard")); 54 console.log(enumerable.toObject("$.firstname")["Richard"]); 55 56 var enumerable2=Enumerable.from(data.address); 57 //inner join 58 enumerable.join(enumerable2, "$.id", "$.id", "outer,inner=>{'id':outer.id,'firstname':outer.firstname,'address':inner.address}").forEach(function(aaa) { 59 console.log(aaa); 60 }); 61 62 enumerable.groupJoin(enumerable2, "$.id", "$.id", "outer,inner=>{'id':outer.id,'firstname':outer.firstname,'address':inner&&inner.address||''}").forEach(function(aaa) { 63 console.log(aaa); 64 });