जावास्क्रिप्ट में काम करने के लिए घोंसला नहीं मिल सकता - जावास्क्रिप्ट, सरणी, foreach, घोंसला

इसलिए मुझे लगता है कि शीर्षक सेल्फप्लेनेटरी है। मेरे पास नेस्टेड के साथ कुछ कोड है forEach इसके अंदर छोरों। लूप की एक सरणी पर पुनरावृत्ति कर रहे हैं chapter वस्तुओं। प्रत्येक ऑब्जेक्ट में कई बच्चे नोड हो सकते हैं और उनके पास फिर से कई बच्चे नोड हो सकते हैं, और इसी तरह।

मैं एक एरे के साथ अंत करना चाहता हूं जिसमें बाल नोड्स के साथ नेस्टेड ऐरे हैं।

अब तक मेरा कोड इस तरह दिखता है:

exports.chapter = function(req, res) {
var chapters = [],
result = [];

chapters = exports.index(req, res);

chapters.forEach(function(chapter) {
if(chapter.orphan){
result.add({
"chapter": chapter,
"children": getChildren(chapter.children)
});
}
});

function getChildren(siblings) {
var children = [];

chapters.forEach(function(chapter) {
if($.inArray(chapter, siblings)){
children.add({
"chapter": chapter,
"children": getChildren(chapter.children)
});
}
});

return children;
};
};

मेरे पेज को छोड़कर मुझे कोई त्रुटि नहीं हुईलोड हो रहा है। यह मेरे कंसोल में कुछ भी नहीं लिखता है। मुझे लगता है कि यह सेटअप में एक समस्या है, लेकिन मैं इस समय यह पता लगाने में असमर्थ हूं कि वास्तव में आपको क्या मदद मिल सकती है।

उत्तर:

जवाब के लिए 3 № 1

सबसे अधिक संभावना समस्या यहाँ है:

if($.inArray(chapter, siblings)){

$.inArray एक बहुत ही गलत तरीके से किया गया तरीका है: यह एक रिटर्न देता है सूची, या -1 यदि नहीं मिला, तो नाम के रूप में एक झंडा नहीं है। -1, निश्चित रूप से, सत्य है; तथा 0 (एक वैध सूचकांक), गलत है, इसलिए आपके if शायद बनना चाहता है

if($.inArray(chapter, siblings) != -1){
// We found it...
}

या संभवतः

if($.inArray(chapter, siblings) == -1){
// We didn"t find it
}

उत्तर № 2 के लिए 1

यह थोड़ा अजीब है .. मुझे समझ में नहीं आता है कि आप "पुश" पद्धति के बजाय "ऐड" का उपयोग क्यों कर रहे हैं। यदि मैं किसी ऑब्जेक्ट को "एरे" में जोड़ने की कोशिश करता हूं तो मुझे एक सामान्य त्रुटि मिलती है।


संबंधित सवाल
सबसे लोकप्रिय