Javascript 为什么$localStorage中的阵列可以工作
index.html 如果我没有将$localStorage.subject初始化为数组,它会给我一个错误,说明.push不是一个函数 当我将数据推送到$localStorage.address时,为什么它没有给出此错误?您使用:Javascript 为什么$localStorage中的阵列可以工作,javascript,angularjs,local-storage,ng-storage,Javascript,Angularjs,Local Storage,Ng Storage,index.html 如果我没有将$localStorage.subject初始化为数组,它会给我一个错误,说明.push不是一个函数 当我将数据推送到$localStorage.address时,为什么它没有给出此错误?您使用: var Helper = { pushArray: function (arr1, arr2) { arr1 = this.toArray(arr1); if (arr1 && arr2 && A
var Helper = {
pushArray: function (arr1, arr2) {
arr1 = this.toArray(arr1);
if (arr1 && arr2 && Array.isArray(arr1)) {
arr1.push.apply(arr1, Array.isArray(arr2) ? arr2 : [arr2]);
}
},
toArray: function (arr) {
return arr ? (Array.isArray(arr) ? arr : [arr]) : [];
}
};
Helper.pushArray(arr1, second);
或者你只是声明:
$localStorage.$default({
subject: []
});
您是否可能在应用程序的其他部分初始化了$localStorage.address?不,我肯定没有@您可以尝试清除本地存储中的所有数据,然后查看变量是否会自动初始化。也许在浏览器的本地存储中有地址的值,这可以解释为什么它被初始化。我已经试过了。当我清除$localStorage并尝试将数据推入$localStorage.address数组时,会出现一个错误,即数组的长度未知。我认为这是因为$localStorage.address没有在任何地方初始化为数组。然而,我的问题是,首先我如何能够将数据推入$localStorage.address。例如,如果我在$scope.submit中按如下方式修改代码,$localStorage.address=address起作用,但$localStorage.subject=subject不起作用@谢谢你的回答。这很有帮助。但是,我的问题是,如何将数据推入$localStorage.address而不将其初始化为array.ok。如果$localStorage.address{$localStorage.address=data;}else{$localStorage.address.pushdata;}是的。我理解这种逻辑。我发布的代码运行良好。我不明白的是它为什么会起作用。我的问题是,如何将数据推送到$localStorage.address而不将其初始化为数组?
var Helper = {
pushArray: function (arr1, arr2) {
arr1 = this.toArray(arr1);
if (arr1 && arr2 && Array.isArray(arr1)) {
arr1.push.apply(arr1, Array.isArray(arr2) ? arr2 : [arr2]);
}
},
toArray: function (arr) {
return arr ? (Array.isArray(arr) ? arr : [arr]) : [];
}
};
Helper.pushArray(arr1, second);
$localStorage.$default({
subject: []
});