सरणी केवल संख्यात्मक कुंजियों (सरणियों भी कर रहे हैं वस्तुओं, लेकिन आप वास्तव में इन मिश्रण नहीं होना चाहिए) के साथ प्रविष्टियों होना चाहिए:
मैं निम्नलिखित की कोशिश की है।
यदि आप किसी सरणी को JSON में परिवर्तित करते हैं, तो प्रक्रिया केवल संख्यात्मक गुणों को ध्यान में रखेगी। अन्य गुणों को आसानी से अनदेखा कर दिया जाता है और यही कारण है कि आप परिणामस्वरूप एक खाली सरणी प्राप्त करते हैं। हो सकता है कि यह और अधिक स्पष्ट आप सरणी के length
देखो अगर:
> AssocArray.length
0
क्या अक्सर "साहचर्य सरणी" कहा जाता है वास्तव में सिर्फ जे एस में एक वस्तु है: वस्तुओं की
var AssocArray = {}; // <- initialize an object, not an array
AssocArray["a"] = "The letter A"
console.log("a = " + AssocArray["a"]); // "a = The letter A"
JSON.stringify(AssocArray); // "{"a":"The letter A"}"
गुण कर सकते हैं सरणी नोटेशन या डॉट नोटेशन के माध्यम से पहुंचा जा सकता है (यदि कुंजी आरक्षित कीवर्ड नहीं है)। इस प्रकार AssocArray.a
AssocArray['a']
जैसा ही है।
स्रोत
2010-12-13 02:03:24
गलत; सरणी भी वस्तुएं हैं। 'Json.stringify' सरणी के गैर-सरणी गुणों को अनदेखा करता है। – SLaks
@ स्लक्स: मैंने कभी नहीं कहा कि सरणी ऑब्जेक्ट्स नहीं हैं;) मैं बस इतना कह रहा हूं कि कोई भी सरणी को एसोसिएटिव सरणी के रूप में उपयोग नहीं कर सकता है (ठीक है शायद कोई * * * * * ऑब्जेक्ट्स हो सकता है, लेकिन मुझे लगता है कि यह वास्तव में बदसूरत हो जाता है और उलझन में और अंत में आप ब्रह्मांड के पतन के लिए जिम्मेदार हैं ...)। –
बस उत्तर को स्पष्ट करने के लिए: जब आप इसे निष्क्रिय करते हैं तो '{}' या 'नया ऑब्जेक्ट()', ** नहीं ** '[]' या 'नया ऐरे()' – Thymine