我遇到以下问题: 我在localStorage中的对象中有一个数组,我需要找到数组中包含的元素数。
我的代码如下
myDom.find(".parent").immediateText()
请原谅代码混乱
这是myh json文件的一个示例(采用Json格式(在进入循环之前进行字符串化)):
this is my 11 original text i 23 want
}
这段代码的问题是,每当我尝试使用父函数时,我都会遇到如下错误:
for (var i = 0; i < localPosts.length; i++){
local_tags = window.localStorage.getItem(localStorage.key(i)).tags
console.log(local_tags);
for (var f = 0; f < local_tags.length; f++) { // <--- error occurs here
tagf = local_tags[f]
console.log(tagf);
for (var j = 0; j < local_tags.length; j++) {
if(tagf == tags[j]){
print_post(i);
}
}
}
}
并且local_tags的日志返回
{
"article1": {
"title": "Hello World!",
"desc": "This is the first post on this website!",
"img": "",
"id": 0,
"tags": ["1", "3"]
},
"article2":{
"title": "",
"desc": "",
"img": "",
"id": 1,
"tags": ["1","2"]
}
感谢您的帮助,我希望我解释得很好!
编辑:使错误在代码中更明显
EDIT2:澄清了JSON数据的字符串化
EDIT3:添加了整个Json文件
答案 0 :(得分:0)
我认为问题是由标签数组
创建的for (var j = 0; j < tags.length; j++) {
if(tagf == tags[j]){
print_post(i);
}
}
未定义tags.length
答案 1 :(得分:0)
您的代码在第if(tagf == tags[j]){
行
尝试以下代码,根据您的要求进行一些更改
window.localStorage.setItem("test_article1",JSON.stringify({"article1": { "title": "Hello World!", "desc": "This is the first post on this website!", "img": "", "id": 0, "tags": ["1", "3"]}}))
localPosts = ["test_article1"];
for (var i = 0; i < localPosts.length; i++){
local_tags = JSON.parse(window.localStorage.getItem(localStorage.key(i)))["article1"]["tags"];
console.log(local_tags);
for (var f = 0; f < local_tags.length; f++) { // <--- error occurs here
tagf = local_tags[f]
console.log(tagf);
for (var j = 0; j < local_tags.length; j++) {
console.log(local_tags[j]);
}
}
}