ध्यान दें कि जब आप किसी स्थिति (या 0) सूचकांक का उपयोग करते हैं, तो मान सरणी के भीतर रखे जाते हैं:
var array = [];
array[0] = "Foo";
array[1] = "Bar";
जब आप गैर-इंडेक्स मान जोड़ते हैं तो ऐसा नहीं होता (0-9 + नहीं):
var array = [];
array[0] = "Foo";
array[1] = "Bar";
array[-1] = "Fizzbuzz";
जब आप नियमों द्वारा खेलते हैं तो मान केवल सरणी में रखे जाते हैं। जब आप नहीं करते हैं, तो उन्हें स्वीकार नहीं किया जाता है। हालाँकि, उन्हें Array ऑब्जेक्ट पर ही स्वीकार किया जाता है, जो कि जावास्क्रिप्ट में किसी भी चीज़ के बारे में है। भले ही ["Foo", "Bar"]हमारे सरणी में एकमात्र मान हैं, फिर भी हम पहुंच सकते हैं "Fizzbuzz":
array[-1];
लेकिन फिर से ध्यान दें कि यह सरणी मानों का हिस्सा नहीं है, क्योंकि इसका "सूचकांक" मान्य नहीं है। इसके बजाय इसे केवल दूसरे सदस्य के रूप में सरणी पर जोड़ा गया था। हम एक ही अंदाज में अन्य सरणी सदस्यों तक पहुँच सकते हैं:
array["pop"];
यहां ध्यान दें कि हम popएरे पर विधि का उपयोग कर रहे हैं , जो हमें सूचित करता है कि इसमें मूल कोड शामिल है। हम किसी भी सरणी मान को "पॉप" की कुंजी के साथ एक्सेस नहीं कर रहे हैं, बल्कि सरणी ऑब्जेक्ट पर ही एक सदस्य हैं। हम वस्तु के सार्वजनिक सदस्यों पर साइकिल चलाकर इसकी पुष्टि कर सकते हैं:
for (var prop in array)
console.log(prop, array[prop]);
निम्नलिखित में से कौन सा थूक है:
0 Foo
1 Bar
-1 Fizzbuzz
तो फिर, यह पर वस्तु है, लेकिन यह नहीं है में सरणी ।
बहुत बढ़िया सवाल! मुझे यकीन है कि एक डबल लेने के लिए कारण बना।