वापस आना चाहिए [ए '] बी यह नहीं है? लेकिन यह है नहीं हो रहा है, यह सिर्फ स्ट्रिंग तत्वों के लिए .स्टस्ट्रिंग () विधि यह देता है, लेकिन सरणी वाले तत्वों के लिए इसे वापस करना चाहिए जब आप ऑब्जेक्ट को दस्तावेज़ में लिखते हैं। लिखना, जावास्क्रिप्ट ऑब्जेक्ट को .toString () के साथ स्ट्रिंग में कनवर्ट करता है। इस मामले में, समतल को सरणी में जोड़कर सरणी में जोड़ना होगा, और इसे स्ट्रैम के रूप में वापस करना होगा। हम []। ValueOf () विधि स्वतः ही वापस कर देती है। इस के अनुसार < पूर्व>
document.write ([["a"]], ["b"])
ab लिखता है। मुझे इसके पीछे कारण जानना चाहता था।
["a", "b"]। ToString () // a, b
[["A"], "b"]। ToString () // [a], b
["यह", "है", "एक", "सरणी"!] (); // "यह, है, एक, सरणी!" [["एक", ["बी"]], ["सी"]] टूस्ट्रिंग () // "ए, बी, सी"
दस्तावेज़ का विस्तार कर सकते हैं .write (<["a", ["b"]], ["c"]] निम्न में:
var input = [["a", ["बी"]], ["सी"], "डी"]; Array.prototype.verboseToString = function verboseToString () {// सरणी की प्रति बनाओ, इसलिए हम मूल var कॉपी = this.slice (), i; को नष्ट नहीं करते हैं; (I = 0; i & lt; copy.length; i ++) {// यदि यह एक अर्रे है, तो उस पर वर्बोज़ टॉस्ट्रिंग () कॉल करें, और गहराई से जाएं (यदि प्रतिलिपि [i] उदाहरण के लिए अर्रे === सच) {copy [ I] = प्रतिलिपि [i] .verboseToString (); }} // कॉपी में गैर- arrays शामिल हैं और हम अन्य प्रकार की 'toString () आउटपुट वापसी copy.join (', '); की अनदेखी कर रहे हैं; } Document.write (input.verboseToString ()); // "ए, बी, सी, डी"
No comments:
Post a Comment