在localStorage中存储阵列错误

杰兰肯尼迪

我的代码中存在一个错误,该错误仅在重载时将最后一个对象保存在数组中。我有一种感觉,我的addAccount()函数无法正确保存或插入数据。其他一切正常。在我的控制台中,它表明数据正在插入到数组中,但是当我刷新时,我只会保存最后一个对象。我不确定该怎么办。

    // The list of accounts array.
    var accountsArray = [];
    function addAccount() {
    	// Take fields and put user data into varables.
    	var accountName = document.getElementById('accountName').value;
        var accountBalance = document.getElementById('accountBalance').value;
        var accountType = document.getElementById("accountType");
    	var accountTypeSelected = accountType.options[accountType.selectedIndex].text;
    	var accountCurrency = document.getElementById("accountCurrency");
    	var accountCurrencySelected = accountCurrency.options[accountCurrency.selectedIndex].text;
    	
    	var temporaryObject = {
    		'accountName': accountName,
    		'accountBalance': accountBalance,
    		'accountTypeSelected': accountTypeSelected,
    		'accountCurrencySelected': accountCurrencySelected
    	};
    	
    	accountsArray.push(temporaryObject);
    	console.log(accountsArray);
    	
    	saveAccountData();
        showAccountsArray();
    }
    function saveAccountData() {
    	localStorage.setItem('accountsArray', JSON.stringify(accountsArray));
    }
    function showAccountsArray() {
    	//var accountsLocalStorage = JSON.parse(localStorage['accountsArray']);
    	if (localStorage.getItem("accountsArray") === null) {
    		document.getElementById("getStarted").style.visibility="visible";
    		document.getElementById("balanceToolbarName").style.visibility="hidden";
    		document.getElementById("accountsMainList").style.visibility="hidden";
    	} else {
    	
    		var accountsLocalStorage = JSON.parse(localStorage['accountsArray']);
    		console.log(accountsLocalStorage);
    		
    		var accountInfo = '';
    		var i = 0;
    		while (i < accountsLocalStorage.length) {
    			accountInfo += '<li class="swipeout"><a href="#" class="item-link"><div class="swipeout-content item-content"><div class="item-inner"><div class="item-title">' + accountsLocalStorage[i].accountName + '</div><div class="item-after">$' + accountsLocalStorage[i].accountBalance + '</div></div></div><div class="swipeout-actions-left"><a href="#" class="action1">Clear</a></div><div class="swipeout-actions-right"><a href="#" class="action1">Delete</a></div></a></li>';
    			document.getElementById("accountsList").innerHTML = accountInfo;
    	       i++;
    		}
    		
    		document.getElementById("getStarted").style.visibility="hidden";
    		document.getElementById("balanceToolbarName").style.visibility="visible";
    		document.getElementById("accountsMainList").style.visibility="visible";
    	}
    	
    }
*

狮子座

通过您提供的链接测试,您的所有功能都可以正常工作。页面加载后,它会成功从本地存储中检索数据(如果有)并显示在页面上。但是,全局数组变量accountsArray填充有从本地存储中检索到的数据。

您需要重新填充全局数组,否则当您调用全局数组时saveAccountData,它将保存该数组保存的所有内容,而实际上覆盖了您在本地存储中拥有的任何内容。要修复它,只需添加添加此代码块...

$(function(){
    var data = localStorage.getItem("accountsArray");

    if(data != null)
        accountsArray = JSON.parse(localStorage.getItem("accountsArray"));
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在localStorage中存储阵列错误

来自分类Dev

在LocalStorage中构建阵列

来自分类Dev

在LocalStorage中构建阵列

来自分类Dev

在会话中存储阵列

来自分类Dev

在Rails中存储阵列

来自分类Dev

在 localStorage 中存储信息

来自分类Dev

将阵列存储在缓存中

来自分类Dev

在MongoDB中存储大型阵列

来自分类Dev

在localStorage中存储和检索

来自分类Dev

在localStorage中存储和检索

来自分类Dev

将对象存储在localStorage中

来自分类Dev

阵列中的用户角色错误

来自分类Dev

QTP/UFT - 在一个阵列中存储多个阵列

来自分类Dev

通过ID将项目存储在阵列中

来自分类常见问题

如何从Redux存储中删除阵列?

来自分类Dev

如何从Redux存储中删除阵列?

来自分类Dev

删除本地存储阵列中的特定元素

来自分类Dev

将用户信息存储在阵列中

来自分类Dev

iOS 7将颜色存储在阵列中

来自分类Dev

在阵列中存储和打印值-VBA

来自分类Dev

在阵列导轨中存储Time_Select

来自分类Dev

在Laravel中存储阵列的最佳位置

来自分类Dev

如何在阵列中存储对等连接

来自分类Dev

从本地存储中删除整个阵列

来自分类Dev

将用户输入存储在本地存储中的特定阵列中

来自分类Dev

localStorage阵列拆分

来自分类Dev

localStorage:防止在localStorage中存储重复值的条件

来自分类Dev

localStorage:防止在localStorage中存储重复值的条件

来自分类Dev

如何获取存储在localStorage中的对象的值?