2016-04-11 22 views
2

Yerel depolama birimindeki bir nesneyi kaydediyorum ve sayfayı yeniden yüklediğimde tüm öğeleri listelemek istiyorum, ancak bu bilgilerin nasıl alınacağını bilmiyorum nesne elemanları. Herhangi bir fikir? İşte benim kodum:Yerel depolama biriminde belirli bir nesne öğesi alırsınız

var estudiantes = []; 

function agregaArray(i) { 
    estudiantes.push({ 
     "carnet": $("#carnet_" + i).text(), 
     "apellidos": $("#apellidos_" + i).text(), 
     "nombre": $("#nombre_" + i).text(), 
     "e1": $("#examen1_" + i).val(), 
     "e2": $("#examen2_" + i).val(), 
     "e3": $("#examen3_" + i).val(), 
     "prom": $("#promedio_" + i).text() 
    }); 
} 

function agregaLocalStorage() { 
    localStorage.setItem("114270311_estudiantes", JSON.stringify(estudiantes)); 
} 

$("#list").click(function() { 
    for (var i = 0; i < localStorage.length; i++) { 
     var obj = JSON.parse(localStorage.getItem(localStorage.key(i))); 
     console.log(obj.carnet); 
     console.log(obj.apellidos); 
     console.log(obj.nombre); 
    } 
}); 

Bu konsol.logları bir "tanımlanmamış" döndürür ve ben belirli bilgileri almak istiyorum.

Yardımlarınız için teşekkürler.

cevap

3

Değeri, bir dizi yerel depolama biriminde depolamak için 114270311_estudiantes anahtarını kullanıyorsunuz.

Yani agregaArray() & agregaLocalStorage() aradığınız nasıl sonra dışarı bulmak mümkün değil kodunuzda itibaren diziyi

$("#list").click(function() { 
    var arr = JSON.parse(localStorage.getItem('114270311_estudiantes')); 
    arr.forEach(function(obj) { 
    console.log(obj.carnet); 
    console.log(obj.apellidos); 
    console.log(obj.nombre); 
    }); 
}); 
+0

sayesinde faydalı olacaktır, tamamen haklısınız! –

0

sürekli tekrarlanması dizisini almak için o tuşun sonucunu ayrıştırmak gerekir; işlevi. agregaArray işlevinin içinde localStorage.setItem.. işlevini yapabilir ve ikinci bir işlevden kaçınabilirsiniz.

Ayrıca, localStorage.length yapıyorsanız, ilginizi çekmeyebilecek tüm depolanmış öğeleri döndürür.Ayrıca, yalnızca bu anahtarla depolanan öğeye ihtiyacınız olur 114270311_estudiantes.

Demo için json değerlerini kodlamakta zorlanıyorum.

Umut bu pasajı

var estudiantes = []; 

function agregaArray() { 
    estudiantes.push({ 
     "carnet": "1", 
     "apellidos":"2", 
     "nombre":"3", 
     "e1":"4", 
     "e2":"5", 
     "e3": "6", 
     "prom":"6" 
    }); 
} 
function agregaLocalStorage() { 
    localStorage.setItem("114270311_estudiantes",JSON.stringify(estudiantes)); 
} 
agregaArray(); 
agregaLocalStorage(); 

$("#list").click(function() { 
    var m = JSON.parse(localStorage.getItem("114270311_estudiantes")); 
    m.forEach(function(key){ 
    console.log(key.carnet); 
    console.log(key.nombre); 
    console.log(key.apellidos); 
    }) 
}); 

Working jsFiddle

+0

Teşekkürler, gerçekten yararlı oldu! Sorun çözüldü –