2015-01-27 2 views
1

У меня возникли проблемы с получением точного значения или имени из моего массива в localStorage.Возврат последнего элемента в массиве localStorage

Это мой LocalStorage: JSON Result

То, что я хочу сделать, это получить последний элемент и установить переменную на значение первого элемента в последней записи (ReportReference). Причина состоит в том, чтобы проверить, нет ли там элемента с таким же значением для ReportReference, чтобы не сохранять другую копию формы, которую я сохраняю, и снова обновлять поля для сохранения обратно в localStorage.

Метод ниже - это сохранение для более поздней кнопки, которая просто сохраняет значения vales в массиве.

// Add to local Storage 
$('.SaveStore').on('click', addStorage); 

function addStorage(e) { 
    e.preventDefault(); 
    var keyIndex = localStore.getValue(REPORTS_KEY); 

    console.log(keyIndex); 
    for (var i = 0; i < keyIndex.length; i++) { 
     //console.log(keyIndex[i]); 
     for (var key in keyIndex[i]) { 
      //console.log(keyIndex[i][key]); 
      var test = keyIndex[i][key]; 
      console.log(test.value); 
     } 
    } 

    var form = $('form').serializeArray(); 
    //console.log(form); 
    var reports = localStore.getValue(REPORTS_KEY); 
    if (reports == null) { 
     reports = []; 
    } 
    reports.push(form); 
    localStore.setValue(REPORTS_KEY, reports); 
    clearFormElements(); 
} 

в console.log(test.value) даст мне все результаты, но то, что я когда-нибудь попробовать это, кажется, не дает мне никаких результатов.

Console.log(test[0].value); // Returns value undefined 

Result from console

Я посмотрел на этот пост и попытался сделать то, что они говорят, но не везло: localstorage: Get specific localstorage value of which contains many items

Как я не могу восстановить позицию я хочу передать к функции.

ответ

0

попробовать это:

for (var i = 0, formLen = keyIndex.length; i < formLen; i++) { 
    var serializedForm = keyIndex[i]; 
    for (var j = 0, fieldsLen = serializedForm.length; j < fieldsLen; j++) { 
      var field = serializedForm[j]; 

      if (field.name == "ReportReference" && field.value == "bbb") { 
        console.log(keyIndex[i][j]); 
      } 
    } 
} 
+0

Спасибо, это помогло мне получить какие-либо ценности, которые уже существуют в моих массивах, которые я могу после этого сделать что-то с. – StudentRik

Смежные вопросы