我将项目从一个数组移动到另一个数组,只要它不存在,然后将其存储在localStorage
var queue = [];
function moveToQueue(item) {
if(queue.indexOf(item) == -1) {
queue.push(item);
store();
}
}
function store() {
localStorage.myApp_queue = JSON.stringify(queue);
}
当页面加载时,我调用我的加载函数。
function load() {
if(typeof localStorage.myApp_queue != 'undefined') {
queue = JSON.parse(localStorage.myApp_queue);
}
}
此时,我的界面显示queue
我上次离开时的样子,但如果我再次尝试添加相同的项目,“queue.indexOf(item)”将失败。的内容与调用方法queue
之前的内容不同。store()/load()
console.log()
以下是我的页面重新加载前后的一些调用,以空的queue
. 日志已添加到moveToQueue
函数的开头
function moveToQueue(item) {
console.log('adding to queue');
console.log(item);
console.log(queue[0]);
console.log(queue.indexOf(item));
...
初始负载:
adding to queue
e {id: 1, status: "A", title: "Comcar", $$hashKey: "004", $get: function…}
undefined
-1
adding to queue
e {id: 1, status: "A", title: "Comcar", $$hashKey: "004", $get: function…}
e {id: 1, status: "A", title: "Comcar", $$hashKey: "004", $get: function…}
0
页面刷新后 - 我推送的项目已经在queue
数组中
adding to queue
e {id: 1, status: "A", title: "Comcar", $$hashKey: "006", $get: function…}
Object {id: 1, status: "A", title: "Comcar", $$hashKey: "004"}
-1
我在这里错过了什么,改变我的阵列是什么localStorage
以及正在做什么。JSON
我可以看到日志将从存储返回的项目列为“对象”,而原始项目的“类型”(不太确定)“e”。
如果我typeof
对两者都使用结果是“对象”