Как сделать эквивалент LINQ SelectMany () только в JavaScript

Как сделать эквивалент LINQ SelectMany () только в JavaScript

К сожалению, у меня нет JQuery или Underscore, просто чистый javascript (совместимый с IE9).

Я хочу эквивалент SelectMany () из функциональности LINQ.

 // SelectMany flattens it to just a list of phone numbers. IEnumerable{amp}lt;PhoneNumber{amp}gt; phoneNumbers = people.SelectMany(p ={amp}gt; p.PhoneNumbers); 

Могу ли я это сделать?

РЕДАКТИРОВАТЬ:

Благодаря ответам, я получил это работает:

 var petOwners = [ { Name: "Higa, Sidney", Pets: ["Scruffy", "Sam"] }, { Name: "Ashkenazi, Ronen", Pets: ["Walker", "Sugar"] }, { Name: "Price, Vernette", Pets: ["Scratches", "Diesel"] }, ]; function property(key){return function(x){return x[key];}} function flatten(a,b){return a.concat(b);} var allPets = petOwners.map(property("Pets")).reduce(flatten,[]); console.log(petOwners[0].Pets[0]); console.log(allPets.length); // 6 var allPets2 = petOwners.map(function(p){ return p.Pets; }).reduce(function(a, b){ return a.concat(b); },[]); // all in one line console.log(allPets2.length); // 6 
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector