Guest User

Untitled

a guest
Dec 6th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. // JS array equivalents to C# LINQ methods - by Dan B.
  2.  
  3. // Here's a simple array of "person" objects
  4. var people = [
  5. { name: "John", age: 20 },
  6. { name: "Mary", age: 35 },
  7. { name: "Arthur", age: 78 },
  8. { name: "Mike", age: 27 },
  9. { name: "Judy", age: 42 },
  10. { name: "Tim", age: 8 }
  11. ];
  12.  
  13.  
  14. // filter is equivalent to Where
  15.  
  16. var youngsters = people.filter(function (item) {
  17. return item.age < 30;
  18. });
  19.  
  20. console.log("People younger than 30");
  21.  
  22. console.log(youngsters);
  23.  
  24.  
  25. // map is equivalent to Select
  26.  
  27. var names = people.map(function (item) {
  28. return item.name;
  29. });
  30.  
  31. console.log("Just the names of people");
  32.  
  33. console.log(names);
  34.  
  35.  
  36. // every is equivalent to All
  37.  
  38. var allUnder40 = people.every(function (item) {
  39. return item.age < 40;
  40. });
  41.  
  42. console.log("Are all people under 40?"); // false
  43.  
  44. console.log(allUnder40);
  45.  
  46.  
  47. // some is equivalent to Any
  48.  
  49. var anyUnder30 = people.some(function (item) {
  50. return item.age < 30;
  51. });
  52.  
  53. console.log("Are any people under 30?");
  54.  
  55. console.log(anyUnder30); // true
  56.  
  57.  
  58. // reduce is "kinda" equivalent to Aggregate (and also can be used to Sum)
  59.  
  60. var aggregate = people.reduce(function (item1, item2) {
  61. return { name: '', age: item1.age + item2.age };
  62. });
  63.  
  64. console.log("Aggregate age");
  65.  
  66. console.log(aggregate.age); // { age: 210 }
  67.  
  68.  
  69. // sort is "kinda" like OrderBy (but it sorts the array in place - eek!)
  70.  
  71. var orderedByName = people.sort(function (a, b) {
  72. return a.name > b.name ? 1 : 0;
  73. })
  74.  
  75. console.log("Ordered by name");
  76.  
  77. console.log(orderedByName);
  78.  
  79.  
  80. // and, of course, you can chain function calls
  81.  
  82. var namesOfPeopleOver30OrderedDesc = people.filter(function (person) {
  83. return person.age > 30;
  84. }).
  85. map(function (person) {
  86. return person.name;
  87. }).
  88. sort(function (a, b) {
  89. return a < b ? 1 : 0;
  90. });
  91.  
  92. console.log("And now.. the names of all people over 30 ordered by name descending");
  93.  
  94. console.log(namesOfPeopleOver30OrderedDesc);
Add Comment
Please, Sign In to add comment