दुर्भाग्यवश, मेरे पास JQuery या Underscore नहीं है, केवल शुद्ध जावास्क्रिप्ट (IE9 संगत) है।LINQ SelectMany() के बराबर कैसे करें जावास्क्रिप्ट
मैं LINQ कार्यक्षमता से SelectMany() के बराबर चाहता हूं।
// SelectMany flattens it to just a list of phone numbers.
IEnumerable<PhoneNumber> 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
यह दुर्भाग्यपूर्ण नहीं है। शुद्ध जावास्क्रिप्ट अद्भुत है। संदर्भ के बिना, यह समझना बहुत मुश्किल है कि आप यहां क्या हासिल करने की कोशिश कर रहे हैं। –
@ स्टर्लिंगआर्चर, देखें कि उत्तर कितना विशिष्ट है। बहुत सारे संभावित उत्तर नहीं थे और सबसे अच्छा जवाब छोटा और संक्षिप्त था। – toddmo