2014-04-02 4 views
5

मेरे पास JSON ऑब्जेक्ट्स की एक बड़ी, बहुआयामी सरणी है जिसे मैं (अंडरस्कोर का उपयोग करके) मैप करना चाहता हूं। उदाहरण के लिए:एक बहुआयामी सरणी (अंडरस्कोर का उपयोग करके) को कैसे मैप करें?

var dummyData = [ 
    [{title: 'a'},{title : 'b'}], 
    [{title: 'a'},{title : 'b'}], 
    [{title: 'a'},{title : 'b'}], 
    [{title: 'a'},{title : 'b'}] 
]; 

_.map के समारोह शरीर के लिए, मैं एक रीढ़ मॉडल निर्माता के माध्यम से एक JSON ऑब्जेक्ट चलाना चाहते हैं। इस तरह अब तक, मैं कोशिश की है कुछ यह पूरा करने के:

_.map(dummyData, function() { 
    _.each(dummyData, function(el, i) { 
     // run each object through the constructor 
    } 
}) 

मैं हालांकि _.each पर पकड़ा हो रही, - के बाद से dummyData वास्तव में 'सूची' है कि मैं के माध्यम से लूप करना चाहते हैं नहीं है।

या क्या मैं इस गलत के बारे में पूरी तरह से सोच रहा हूं?

+0

आप परिणाम चाहते हैं अपने इनपुट की तरह सरणी की एक श्रृंखला होना चाहिए? – thefourtheye

+0

हां। बिल्कुल इनपुट के समान ही, लेकिन प्रत्येक ऑब्जेक्ट बैकबोन मॉडल होगा। – GloryOfThe80s

उत्तर

9

इस

_.map(dummyData, function(currentDummyData) { 
    return _.map(currentDummyData, function(el, i) { 
     // run each object through the constructor 
    }) 
}); 

dummyData तरह dummyData के तत्वों से अधिक दोहराएं, _.map साथ सरणी के एक सरणी है। जब आप _.map का उपयोग करते हैं, तो यह प्रत्येक सरणी को सरणी के सरणी में बनाता है और फ़ंक्शन पर जाता है, जिसे हम function(currentDummyData) {..} के साथ स्वीकार करते हैं।

उस फ़ंक्शन के अंदर, हम फिर से _.map उस सरणी को देखते हैं, क्योंकि यह अभी भी एक सरणी है। इसलिए, हम अलग-अलग तत्व प्राप्त करने के लिए पुन: प्रयास करते हैं और उन्हें function(el, i) {..} फ़ंक्शन पर पास करते हैं, जहां नए बैकबोन मॉडल बनाए जाते हैं।

नोट: आपको उत्तर में _.map का परिणाम वापस करना होगा। क्योंकि, _.map अपेक्षा करता है कि फ़ंक्शन किसी ऑब्जेक्ट को वापस करने के लिए बुलाया जाता है और सभी लौटाई गई वस्तुएं एक नई सरणी बनाने के लिए एकत्र की जाएंगी।

उदाहरण के लिए,

console.log(_.map(dummyData, function(currentDummyData) { 
    return _.map(currentDummyData, function(el, i) { 
     return {title: el.title + el.title}; 
    }) 
})); 

का उत्पादन करेगा

[ [ { title: 'aa' }, { title: 'bb' } ], 
    [ { title: 'aa' }, { title: 'bb' } ], 
    [ { title: 'aa' }, { title: 'bb' } ], 
    [ { title: 'aa' }, { title: 'bb' } ] ] 
संबंधित मुद्दे