2017-05-03 8 views
6

यह मेरा कोड है। मैं ऑब्जेक्ट्स का ऐरे बनाने के लिए कुछ दिनों से कोशिश कर रहा हूं, जिसे मैं स्थानीय संग्रहण में स्टोर करूंगा। यहां समस्या है, मुझे पहले स्थानीय संग्रहण से मौजूदा मान प्राप्त करने की आवश्यकता है।स्थानीय संग्रहण में ऑब्जेक्ट्स की सरणी कैसे संग्रहीत करें?

मुझे फिर मौजूदा सरणी में नई डेटा ऑब्जेक्ट जोड़ने की आवश्यकता है। मैं इसे JSON में रूपांतरित करता हूं ताकि मैं उसे स्थानीय संग्रहण में संग्रहीत कर सकूं।

onRegisterSubmit(){ 
    const user = { 
     a: this.a, 
     b: this.b, 
     c: this.c, 
     id: Date.now() 
    }  

    var abc = []; 
    var get = JSON.parse(localStorage.getItem('user')); 
    abc = [get]; 
    abc.push(user); 

    localStorage.setItem('user', JSON.stringify(abc)); 

    console.log(JSON.stringify(abc)); 
    console.log(get); 
    } 

मैं JSON इस तरह की वस्तुओं की एक सरणी होना चाहता हूँ,

[{"hour":1,"minute":21,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493797882440"},{"hour":1,"minute":24,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493797896257"},{"hour":6,"minute":14,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493815470408"}] 

यह मेरा JSON है।

[[[[[[[{"id":1493820594019},{"id":1493820606448}],{"id":1493820609111}],{"id":1493820610150}],{"id":1493820610553}],{"id":1493820610827}],{"id":1493820611015}],{"id":1493820612018}] 

मैं कई दिनों की कोशिश कर रहा हूं और किसी भी मदद की सराहना की जाएगी।

+2

और समस्या क्या है? आपको क्या त्रुटि मिल रही है? – Nathan

+0

जब रजिस्ट्रार सबमिट किया जाता है, यह संरचना बन जाता है। [[[[[[[{ "Id": 1493820594019}, { "id": 1493820606448}], { "id": 1493820609111}], { "id": 1493820610150}], { "id": 1493820610553}] , {"आईडी": 14 9 3820610827}], {"आईडी": 14 9 3820611015}], {"आईडी": 14 9 3820612018}] –

+0

[एचटीएमएल 5 स्थानीय स्टोरेज में ऑब्जेक्ट्स संग्रहीत करना] का संभावित डुप्लिकेट (http://stackoverflow.com/questions/2010892/भंडारण-ऑब्जेक्ट-इन-एचटीएमएल 5-लोकलस्टोरेज) – xale94

उत्तर

5

कि कोड के साथ मुद्दे हैं:

  1. आप परिणाम लपेटकर रहे हैं आप एक सरणी में मिलता है, लेकिन सिद्धांत रूप में, आप चाहते हैं पहले से ही एक सरणी है।

  2. आप user, get या abc पर संग्रहीत कर रहे हैं।(आप हटा दिया है कि एक संपादन के साथ।)

सरणी की दुकान करने के लिए, आप क्या कर रहे हैं:

users = JSON.parse(localStorage.getItem("users") || "[]"); 

:

localStorage.setItem("users", JSON.stringify(users)); 

सरणी प्राप्त करने के लिए ध्यान दें कि getItemnull लौटाता है क्योंकि हमने कभी भी हमारे उपयोगकर्ताओं को संग्रहीत नहीं किया है, तो यह डिफ़ॉल्ट (खाली सरणी) प्रदान करता है।

सरणी के लिए एक उपयोगकर्ता को जोड़ने के लिए:

users.push({id: 1, foo: "bar"}); 

उदाहरण (live on jsFiddle[ढेर स्निपेट्स स्थानीय भंडारण की अनुमति नहीं है]):

(function() { // Scoping function to avoid creating globals 
    // Loading 
    var users = JSON.parse(localStorage.getItem("users") || "[]"); 
    console.log("# of users: " + users.length); 
    users.forEach(function(user, index) { 
     console.log("[" + index + "]: " + user.id); 
    }); 

    // Modifying 
    var user = { 
     id: Math.floor(Math.random() * 1000000) 
    }; 
    users.push(user); 
    console.log("Added user #" + user.id); 

    // Saving 
    localStorage.setItem("users", JSON.stringify(users)); 
})(); 

कि आपको पता चलता है कंसोल में मौजूदा उपयोगकर्ताओं की सूची, प्रत्येक बार जब आप पेज रीफ्रेश करते हैं तो एक जोड़ते हैं।

+0

कुछ संपादन किए गए। मैं एबीसी भंडारण कर रहा था। –

+0

@Neha: अच्छा सौदा। उपरोक्त मुख्य बिंदु अभी भी वैध हैं, हालांकि। एक उदाहरण जोड़ा गया। –

+0

अच्छी तरह से कोई काम नहीं किया और मुझे शायद ही कुछ समझ में आया। धन्यवाद, हालांकि, मुझे उम्मीद है कि मैं किसी दिन समझता हूं। प्रयासों के लिए धन्यवाद। मैं इसकी प्रशंसा करता हूँ। –

0

this post देखें।

आप ऑब्जेक्ट्स स्टोर नहीं कर सकते हैं, आपको स्ट्रिंग को स्टोर करना होगा। तो वर्कअराउंड आपके ऑब्जेक्ट को स्टोर करने से पहले स्ट्रिंग करना है (उदाहरण के लिए, आप इसे JSON ऑब्जेक्ट में बदल सकते हैं, इसे स्टोर कर सकते हैं, और आवश्यकता होने पर इसे फिर से पढ़ सकते हैं)।

+0

जब आप कोई उत्तर कम करते हैं, तो कृपया एक टिप्पणी पोस्ट करें जिसमें यह बताया गया है कि आपने इसे क्यों कम किया है, क्योंकि यह अन्यथा कुछ उद्देश्य प्रदान करता है। – Nathan

+0

आपका उत्तर सही है हालांकि, मैंने बस यही किया और इसी तरह मैंने इसे किया। मैंने एक वोट दिया, कोई विचार नहीं कि किसी ने वोट क्यों दिया। –

+0

@Neha ठीक है धन्यवाद :) क्या आपके लिए टीजे का जवाब नहीं था? – Nathan

1

कुछ इस तरह का प्रयास करें: - लिंक https://jsfiddle.net/sureshraina/nLexkyfw/1/

var mydatas = new Array(); 
     mydatas[0] = "data"; 
     mydatas[1] = "data1"; 
     mydatas[2] = "data2"; 

     localStorage["mydatas"] = JSON.stringify(mydatas); 

     var datas = JSON.parse(localStorage["mydatas"]); 
संबंधित मुद्दे