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

将Javascript数组分配给变量会导致项目从数组中删除,javascript,arrays,vue.js,local-storage,Javascript,Arrays,Vue.js,Local Storage,我遇到了一个奇怪的问题,将数组分配给变量会导致数组中的某些项被删除。这可能也与Vue.js有关 我将数据数组作为字符串存储在localStorage中(因为这是localStorage所接受的全部内容)。当用户单击应用程序中的某个按钮时,它会运行Vue函数,检查localStorage是否有特定的键,如果有,我会将该键分配给函数中的变量“localCards”。当localStorage数据被分配给变量时,它会删除数组中的一些项。以下是代码示例,以便于更好地理解: console.log( JS

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

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

console.log( JSON.parse(localStorage.getItem('localCards')) );
// Returns the complete array

知道为什么将数据分配给变量会删除某些项吗?

我想您应该首先声明变量…作为数组;然后解析它

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

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

你能提供一份工作吗?信息不足,无法重现该行为。将其指定给局部变量不会删除项。在单击展开之前,记录到控制台的对象/数组都是“活动”的,因此,如果任何其他代码修改了该数组,即使在发生变异之前进行了日志记录,它也会反映在日志记录中。分配一个立即丢弃的空数组会有什么不同?
var localCards =[];
localCards =JSON.parse(localStorage.getItem('localCards'));