首页 > 解决方案 > 如何替换或交换数组?

问题描述

我用 保存myArray = [{a: 1, b:2}, {a:3, c:4}]在 localStorage 中 JSON.stringify(myArray),用 解析它JSON.parse(localStorage.getItem('nameInLS')); 并将其存储在一个名为 的变量localData中,如果console.log使用,它会返回以下内容:

[{a: 1, b:2}, {a:3, c4}]

我的代码适用,myArray我的问题是,如何将空myArray(重新加载站点时为空)替换为localData

如果我可以交换两个数组的内容,它也会起作用。

目标是,在页面加载时,如果 localStorage 不为空,则将内容加载到myArray中,稍后调用一个函数,该函数构建一个包含以下内容的 html 表myArray

我尝试了一些奇怪的事情,例如:

myArray.push(localData) //worked but looked like this [[...]]
myArray = localData
localData = myArray //both didn't work

谢谢你。

标签: javascriptarrays

解决方案


最初从 localStorage 加载某些内容有什么问题?

如果您尝试保存对象,这可能不起作用。您需要将其转换为 JSON 字符串,如下所示:

const LOCAL_STORAGE_KEY = 'my-array';

// initial load
const rawValue = localStorage.getItem( LOCAL_STORAGE_KEY );
let myArray = rawValue ? JSON.parse( rawValue ) : [];

// do stuff
myArray.push( 'test' );

// save it back again
localStorage.setItem( LOCAL_STORAGE_KEY, JSON.stringify( myArray ) );

推荐阅读