残念ながら、私はJQueryやアンダースコアを持たず、純粋なjavascript(IE9互換)を持っていません。JavaScriptのちょうどLINQ SelectMany()に相当する方法
私はLINQ機能からSelectMany()に相当することを望んでいます。
// SelectMany flattens it to just a list of phone numbers.
IEnumerable<PhoneNumber> phoneNumbers = people.SelectMany(p => p.PhoneNumbers);
私はそれを行うことはできますか?
EDIT:あなたは配列の軽減機能を使用することができます選択
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は素晴らしいです。文脈がなければ、あなたがここで達成しようとしていることを理解することは非常に難しいです。 –
@ StoneArcher、答えがどれほど具体的であるかが分かります。可能な回答は多すぎず、最善の答えは短く簡潔でした。 – toddmo