我正在尝试将值推送到数组中,它在开发人员工具中给出了这个错误。
未捕获的TypeError:无法读取属性' push'为null
以下是它似乎坚持的代码,单词和本地单词之前就是这样定义的。
var word = [];
var localWord = [];
function setLocalArray() {
// first get words from text field and update word array.
word = document.getElementById("words").value.split(',');
// store word array in localStorage
for(var i=0; word.length > i; i++) {
var key2 = "part"+i;
localStorage.setItem(key2,word[i]);
localWord.push(key2);
}
localStorage.setItem("localWord",JSON.stringify(localWord));
text2Array();
reveal();
}
localWord.push(KEY2);似乎是它被困在了什么。我已经查看了我在push方法上找到的所有内容,但我似乎无法找到它为什么会给我这个错误。救命?
以下是jsfiddle http://jsfiddle.net/runningman24/jnLtpb6y/
的完整代码答案 0 :(得分:1)
试试这个......
var localWord = new Array(); //create new array
var word = new Array();
function setLocalArray() {
word = document.getElementById("words").value.split(',');
// store word array in localStorage
for(var i=0; word.length > i; i++) {
var key2 = "part"+i;
localStorage.setItem(key2,word[i]);
localWord.push(key2);
}
}
答案 1 :(得分:1)
我发现了问题,如果你查看我发布的jsfiddle,我试图从localStorage中拉出localWord,即使它不存在,所以它将它设置为null。感谢大家的想法和贡献。
答案 2 :(得分:0)
您可以尝试使用module pattern:
隔离变量的范围var arrayManager = (function () {
var word = [];
var localWord = [];
function setLocalArray() {
// first get words from text field and update word array.
word = document.getElementById("words").value.split(',');
// store word array in localStorage
for(var i=0; word.length > i; i++) {
var key2 = "part"+i;
localStorage.setItem(key2,word[i]);
localWord.push(key2);
}
localStorage.setItem("localWord",JSON.stringify(localWord));
text2Array();
reveal();
}
return {
setLocalArray:setLocalArray
} ;
}());
从外部你只需要调用arrayManager.setLocalArray()