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

Место общения программистов C#
Ответить
Anonymous
 Как сделать эквивалент LINQ SelectMany() только в JavaScript

Сообщение Anonymous »

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

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

// SelectMany flattens it to just a list of phone numbers.
IEnumerable
phoneNumbers = people.SelectMany(p => 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


Подробнее здесь: https://stackoverflow.com/questions/336 ... javascript
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»