2011-11-14 7 views
5

मैं अपने localStorage में इस राशि की आवश्यकता है:LocalStorage और JSON: मैं एक कुंजी के अंदर केवल 1 सरणी कैसे हटा सकता हूँ के बाद से localstorage.removeItem पूरे कुंजी

[{"id":"item-1","href":"google.com","icon":"google.com"}, 
{"id":"item-2","href":"youtube.com","icon":"youtube.com"}, 
{"id":"item-3","href":"google.com","icon":"google.com"}, 
{"id":"item-4","href":"google.com","icon":"google.com"}, 
{"id":"item-5","href":"youtube.com","icon":"youtube.com"}, 
{"id":"item-6","href":"asos.com","icon":"asos.com"}, 
{"id":"item-7","href":"google.com","icon":"google.com"}, 
{"id":"item-8","href":"mcdonalds.com","icon":"mcdonalds.com"}] 

को कैसे नष्ट कर सकते हैं केवल id:item-3 जब localstorage.removeItem पूरे आवश्यकता है कुंजी?

मैं इस विधि का उपयोग किसी सरणी में एक विशिष्ट मान को अद्यतन करने के लिए करता हूं: http://jsfiddle.net/Qmm9g/ इसलिए उसी विधि का उपयोग करके मैं विशिष्ट सरणी को हटाना चाहता हूं।

ध्यान दें कि हटाने के लिए पहले से ही एक बटन है। यही कारण है कि बटन मैं एक समारोह है जिसके साथ ID:item-3

उत्तर

8

कुछ इस तरह पूरे सरणी ({"id":"item-3","href":"google.com","icon":"google.com"}) को हटा काम करेगा होगा चाहते हैं, मुझे यकीन है कि अगर यह सबसे अच्छा तरह से हालांकि यह करने के लिए है नहीं कर रहा हूँ। वहाँ शायद एक बेहतर स्थानीय भंडारण विशिष्ट तरीका है -

var json = JSON.parse(localStorage["results"]); 
for (i=0;i<json.length;i++) 
      if (json[i].id == 'item-3') json.splice(i,1); 
localStorage["results"] = JSON.stringify(json); 
+0

धन्यवाद! मैं – jQuerybeast

6

आप जावास्क्रिप्ट के splice विधि के साथ jQuery के $.each() समारोह का उपयोग कर सकते इस तरह संपूर्ण वस्तु को निकालने के लिए:

$.each(json, function(index, obj){ 
    if (obj.id == 'item-3') { 
     json.splice(index,1); 
     console.log(json); 
     localStorage["results"] = JSON.stringify(json); 
     return false; 
    } 
}); 

फिडल अपडेट किया गया: http://jsfiddle.net/Qmm9g/3/

आशा है कि ये आपकी मदद करेगा!

+0

के लिए क्या देख रहा था आपके उत्तर के लिए धन्यवाद। Altr101 के साथ आपका उत्तर वही है, मैंने उसे तुरंत स्वीकार कर लिया है क्योंकि उसने जवाब दिया है – jQuerybeast

1

स्थानीय स्टोरेज से ऑब्जेक्ट को हटाने के लिए यह मेरा कोड है।

{ 
"admin": { 
    "pass": "1234", 
    "task": [ 
     {"id": "1", "taskName": "assignedTask", "taskDesc": "jhdjshdh"}, 
     {"id": "2", "taskName": "assignedTask", "taskDesc": "jhdjshdh"}, 
     {"id": "3", "taskName": "assignedTask", "taskDesc": "jhdjshdh"}, 
     {"id": "4", "taskName": "assignedTask", "taskDesc": "jhdjshdh"} 
    ] 
} 


    function filterData() { 
     var data = JSON.parse(localStorage.task); 
     //console.log(data); 
     var newData = data.filter(function(val){ 
      return (val.YourPropertyName !== key.value && val.YourPropertyName !== val.value); 
     }); 
     localStorage.task = JSON.stringify(newData); 
    }