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




html arrays html5 local-storage (6)

बस इसे बनाया:

https://gist.github.com/3854049

//Setter
Storage.setObj('users.albums.sexPistols',"blah");
Storage.setObj('users.albums.sexPistols',{ sid : "My Way", nancy : "Bitch" });
Storage.setObj('users.albums.sexPistols.sid',"Other songs");

//Getters
Storage.getObj('users');
Storage.getObj('users.albums');
Storage.getObj('users.albums.sexPistols');
Storage.getObj('users.albums.sexPistols.sid');
Storage.getObj('users.albums.sexPistols.nancy');

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

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

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

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

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

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


स्थानीय 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


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

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

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


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


localStorage केवल स्ट्रिंग का समर्थन करता है। JSON.stringify() और JSON.parse() उपयोग करें।

var names = [];
names[0] = prompt("New member name?");
localStorage.setItem("names", JSON.stringify(names));

//...
var storedNames = JSON.parse(localStorage.getItem("names"));

लैम्ब्डा सिंटैक्स आम तौर पर आईई 10 या उससे नीचे में काम नहीं करता है।

मैं आमतौर पर उपयोग करता हूं

[].forEach.call(arrayName,function(value,index){
    console.log("value of the looped element" + value);
    console.log("index of the looped element" + index);
});


If you are a jQuery Fan and already have a jQuery file running, you should reverse the positions of the index and value parameters

$("#ul>li").each(function(**index,value**){
    console.log("value of the looped element" + value);
    console.log("index of the looped element" + index);
});




javascript html arrays html5 local-storage