मुझे कुछ ऑब्जेक्ट्स वाले जावास्क्रिप्ट सरणी के साथ एक अजीब व्यवहार का सामना करना पड़ रहा है (शायद यह बिल्कुल अजीब नहीं है बल्कि मुझे समझ में नहीं आता है)।जावास्क्रिप्ट सरणी एक ऑब्जेक्ट स्ट्रक्चर बन जाती है
चूंकि मैं कोई जावास्क्रिप्ट समर्थक नहीं हूं, इसलिए यह स्पष्ट रूप से स्पष्ट हो सकता है कि यह क्यों हो रहा है, मुझे बस यह नहीं पता।
मेरे पास एक दस्तावेज़ में चल रहा जावास्क्रिप्ट है। यह इस के समान वस्तुओं की एक सरणी बनाता है:
var myArray = [{"Id":"guid1","Name":"name1"},{"Id":"guid2","Name":"name2"},...];
अगर मैं जगह यह JSON.stringify (myArray) की तरह बनाया गया था पर इस सरणी प्रिंट आउट, मैं मैं क्या उम्मीद कर रहा था मिलती है:
[{"Id":"guid1","Name":"name1"},{"Id":"guid2","Name":"name2"},...]
हालांकि, अगर मैं इस दस्तावेज़ को इस दस्तावेज़ में किसी दस्तावेज़ दस्तावेज़ से एक्सेस करने का प्रयास करता हूं (पहले दस्तावेज़ द्वारा खोली गई विंडो में एक दस्तावेज़) सरणी अब कोई सरणी नहीं है। तो बच्चे को दस्तावेज़ में JSON.stringify (parent.opener.myArray) कर निम्नलिखित में परिणाम होगा:
{"0":{"Id":"guid1","Name":"name1"},"1":{"Id":"guid2","Name":"name2"},...}
और यह मैं क्या नहीं उम्मीद कर रहा था था - मैं एक ही प्राप्त करने के लिए उम्मीद कर रहा था के रूप में मैं में किया था तेह मूल दस्तावेज।
क्या कोई मुझे बता सकता है कि यह क्यों हो रहा है और इसे कैसे ठीक किया जाए ताकि सरणी अभी भी एक सरणी है जब बच्चे की खिड़की/दस्तावेज़ से संबोधित किया जाता है?
पी एस। वस्तुओं सरणी के रूप में ऊपर कहा गया है, वे इस तरह जुड़ जाते हैं आप नहीं जोड़े जाते:
function objTemp()
{
this.Id = '';
this.Name = '';
};
var myArray = [];
var obj = new ObjTemp();
obj.Id = 'guid1';
obj.Name = 'name1';
myArray[myArray.length] = obj;
है कि किसी भी फर्क नहीं पड़ता है।
किसी भी मदद की बहुत सराहना किया जाएगा, दोनों मेरी समस्या ठीक करने के लिए, लेकिन यह भी बेहतर समझ है कि समस्या क्या कारण हो सकता है :)
मैं पुन: पेश नहीं कर सकता। आपने किस ब्राउजर में परीक्षण किया था? क्या आपने JSON लाइब्रेरी का उपयोग किया था? – Bergi
मैं आईई में परीक्षण कर रहा हूं क्योंकि यह एक आवश्यकता है। व्यक्तिगत रूप से मैं आईई नहीं चुनूंगा लेकिन यह मेरे ऊपर नहीं है। मैं केवल अपनी चेतावनी को मजबूत करने के लिए इस उदाहरण में जेसन का उपयोग कर रहा हूं। मैं उस कोड के लिए किसी भी जेसन लाइब्रेरी का उपयोग नहीं कर रहा हूं जो व्यवहार उत्पन्न करता है। – Aidal
हाय, स्वीकार करने के लिए धन्यवाद। मेरे कामकाज को जानने में खुशी हुई साबित हुई। आपके प्रश्न बीटीडब्ल्यू के लिए हैप्पी कोडिंग :) + 1। मैंने उससे सीखा, –