我正在发布完整的脚本以供参考。
我目前正在遍历JSON对象中的数组,然后根据内容ID将内容应用于html div。这可以正常工作,但是我的问题是基于父数组的逻辑,以便隐藏所有不必要的DIV。数组如下:
我的数组有一个带有pageID和pageType的父元素,并包含一个带有实际内容的“ Content”数组。我正在遍历内容以应用它,但我希望能够在每次迭代时说出“如果父pageType为n,则隐藏x div”,就像代码段的这一部分一样:
if(currentJSONobject.page_type_id == 1){
//Some stuff
}else if(currentJSONobject.page_type_id == 2){
//Some stuff
}
所以我的内容可以正确填充并且迭代是适当的,但是如何基于每次迭代的父pageType设置适当的div来隐藏?
const obj = [{
"pageID": "93",
"page_type_id": "2",
"display_id": "2",
"slide_order": null,
"duration": "74",
"background_img": "images\/bg_rainbow.svg",
"panel_id": "86",
"panel_type_id": "2",
"cont_id": "138",
"contID": "138",
"content": "\r\n\r\n\r\n<\/head>\r\n\r\nLeft 93<\/p>\r\n<\/body>\r\n<\/html>"
},
{
"pageID": "93",
"page_type_id": "2",
"display_id": "2",
"slide_order": null,
"duration": "74",
"background_img": "images\/bg_rainbow.svg",
"panel_id": "87",
"panel_type_id": "3",
"cont_id": "139",
"contID": "139",
"content": "\r\n\r\n\r\n<\/head>\r\n\r\nRight 93<\/p>\r\n<\/body>\r\n<\/html>"
}
];
let counter = 0;
const pages_array = obj.reduce(function(pages_array, item, index, obj) {
const current_pageID = item.pageID;
const current_pageType = item.page_type_id;
const exisiting_page = pages_array.find(page => page.pageID === current_pageID);
if (exisiting_page === undefined) {
const new_Page = {
pageID: current_pageID,
pageType: current_pageType,
content: [item]
}
pages_array.push(new_Page);
} else {
exisiting_page.content.push(item)
}
return pages_array;
}, []);
setInterval(()=>{
const currentJSONobject = pages_array[counter];
for(var i = 0; i < currentJSONobject.content.length; i++){
if(currentJSONobject.page_type_id == 1){
//Some stuff
}else if(currentJSONobject.page_type_id == 2){
//Some stuff
}else if(currentJSONobject.page_type_id == 3){
//Some stuff
}else if(currentJSONobject.page_type_id == 4){
//Some stuff
}
}
console.log(pages_array[counter])
counter += 1;
if (counter === pages_array.length){
counter = 0;
}
}, 3500)
console.log(obj);
console.log(pages_array);
答案 0 :(得分:2)
这是正确的评估:
if(parseInt(pages_array[counter].pageType) == 1){
console.log("Paren pageType => ", pages_array[counter].pageType);
}
您的问题是您正在page_type_id
中查找属性currentJSONobject
,而不是在pages_array[counter]
中查找父对象