将Javascript数组分配给变量会导致项目从数组中删除

时间:2019-09-30 22:00:28

标签: javascript arrays vue.js local-storage

我遇到了一个奇怪的问题,即为变量分配数组会导致删除数组中的某些项。这也可能与Vue.js有关。

我将数据数组作为字符串存储在localStorage中(因为这是所有localStorage都接受的)。当用户单击应用程序内的按钮时,它将运行Vue函数,以检查localStorage是否具有特定键,如果是,则将该键分配给函数内的变量“ localCards”。将localStorage数据分配给变量后,它将删除数组中的某些项目。下面是代码示例,可以使您更好地理解:

console.log( JSON.parse(localStorage.getItem('localCards')) );
// Returns the complete array
let localCards = JSON.parse(localStorage.getItem('localCards'));
console.log( localCards );
// Returns the first two items in the array

有人知道为什么将数据分配给变量会丢失某些项目吗?

2 个答案:

答案 0 :(得分:0)

事实证明,发生这种情况是因为数组稍后在代码中发生了变异。我不知道它会影响@skirtle在上面的评论中指出的突变之前的日志记录。

答案 1 :(得分:-3)

我想您应该首先将变量声明为数组。然后解析

var localCards =[];
localCards =JSON.parse(localStorage.getItem('localCards'));