javascript - मैं स्थानीय स्टोरेज में एक सरणी कैसे स्टोर करूं?




html arrays (4)

JSON दृष्टिकोण काम करता है, यानी 7 आपको json2.js की आवश्यकता है, इसके साथ यह पूरी तरह से काम करता है और एक टिप्पणी के बावजूद अन्यथा स्थानीय स्टोरेज है। यह वास्तव में कम से कम परेशानी के साथ सबसे अच्छा समाधान की तरह लगता है। निस्संदेह कोई भी जेसन 2 के समान काम करने के लिए स्क्रिप्ट लिख सकता है लेकिन उसमें थोड़ा सा बिंदु है।

कम से कम निम्न संस्करण स्ट्रिंग के साथ स्थानीय स्टोरेज है, लेकिन जैसा कि कहा गया है कि आपको json2.js को शामिल करने की आवश्यकता है क्योंकि यह ब्राउज़र द्वारा स्वयं शामिल नहीं है: 4.0 (संगत; एमएसआईई 7.0; विंडोज एनटी 6.1; WOW64; ट्राइडेंट / 5.0; एसएलसीसी 2 ; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; बीआरआई / 2; एनपी06; .NET4.0C; .NET4.0E; ज़्यून 4.7) (मैं इसे एक टिप्पणी कर दूंगा जवाब, लेकिन नहीं कर सकते हैं)।

इस प्रश्न का उत्तर यहां दिया गया है:

अगर मुझे स्थानीय स्टोरेज की आवश्यकता नहीं है, तो मेरा कोड इस तरह दिखेगा:

var names=new Array(); 
names[0]=prompt("New member name?");

यह काम। हालांकि, मुझे इस चर को स्थानीय स्टोरेज में स्टोर करने की आवश्यकता है और यह काफी जिद्दी साबित हो रहा है। मैंने कोशिश की:

var localStorage[names] = new Array();
localStorage.names[0] = prompt("New member name?");

मुझसे कहां गलती हो रही है?


एक और समाधान एक रैपर लिखना होगा जो इस तरह सरणी को स्टोर करेगा:

localStorage.setItem('names_length', names.length);
localStorage.setItem('names_0', names[0]);
localStorage.setItem('names_1', names[1]);
localStorage.setItem('names_' + n, names[n]);

जेएसओएन में कनवर्ट करने के ऊपरी हिस्से को हटा देता है, लेकिन यदि आपको तत्वों को हटाने की आवश्यकता है, तो आपको परेशान होगा, क्योंकि आपको सरणी को पुन: अनुक्रमणिका करना होगा :)


स्थानीय localStorage और sessionStorage केवल तारों को संभाल सकता है। आप सरणी और वस्तुओं को संभालने के लिए डिफ़ॉल्ट स्टोरेज-ऑब्जेक्ट्स का विस्तार कर सकते हैं। बस इस स्क्रिप्ट को शामिल करें और नई विधियों का उपयोग करें:

Storage.prototype.setObj = function(key, obj) {
    return this.setItem(key, JSON.stringify(obj))
}
Storage.prototype.getObj = function(key) {
    return JSON.parse(this.getItem(key))
}

किसी सरणी या ऑब्जेक्ट को सहेजने के लिए localStorage.setObj(key, value) का उपयोग करें और इसे पुनर्प्राप्त करने के लिए localStorage.getObj(key) करें। sessionStorage ऑब्जेक्ट के साथ समान विधियां काम करती हैं।

यदि आप स्टोरेज तक पहुंचने के लिए नए तरीकों का उपयोग करते हैं, तो गेटर द्वारा लौटाए जाने से पहले प्रत्येक मान को सहेजने और पार्स करने से पहले JSON-string में परिवर्तित कर दिया जाएगा।

स्रोत: http://www.acetous.de/p/152


JSON.stringify() और JSON.parse() उपयोग करें JSON.stringify() कि सुझाव दिया गया है! यह किसी सदस्य नाम की शायद दुर्लभ लेकिन संभावित समस्या को रोकता है जिसमें डेलीमीटर (उदाहरण के लिए सदस्य का नाम three|||bars ) शामिल है।






local-storage