taskInfo = [
{name: 'John Doe', mail:'john@test.com', tasks: [
{name:'Task1', priority: 1, groupname: 'gName'},
{name:'Task2', priority: 1, groupname: 'gName1'},
{name:'Task3', priority: 1, groupname: 'gName2'},
]
},
{name: 'Susan Doe', mail:'susan@test.com', tasks: [
{name:'Task4', priority: 1, groupname: 'gName'},
{name:'Task5', priority: 2, groupname: 'gName2'},
{name:'Task6', priority: 3, groupname: 'gName2'},
]
}
]
基于上述对象,我必须在HTML页面中创建一个动态值,以下是创建布局的循环
for(var j=0; j < taskInfo[i].tasks.length; j++)
{
var flow = taskInfo[i].tasks[j].parity;
console.log(flow);
var par = document.createElement("div");
par.setAttribute("id","Priority"+flow);
cont.appendChild(par);
}
}
到目前为止一切正常,但无法避免重复优先级值。
<div id="priority1">..</div>
<div id="priority1">..</div>
<div id="priority1">..</div>
我想要一个div而不是这些重复。帮助我解决这个问题。我是JavaScript的初学者。
答案 0 :(得分:0)
...
var tmpList = []
for(var j=0; j < taskInfo[i].tasks.length; j++) {
var flow = taskInfo[i].tasks[j].priority;
console.log(flow);
if (tmpList.indexOf(flow) < 0) { // if flow is not in tmpList
tmpList.push(flow)
}
}
for(var k=0; k < tmpList.length; k++) {
var par = document.createElement("div");
par.setAttribute("id","Priority"+tmpList[k]);
cont.appendChild(par);
}
...
如何使用列表进行重复检查?
答案 1 :(得分:0)
一个简单的解决方案是在收到 parity 时将其保存在一个数组中,然后检查该数组是否已经具有奇偶校验跳过。
var parityArray = [];
for(var j=0; j < taskInfo[i].tasks.length; j++)
{
var flow = taskInfo[i].tasks[j].parity;
if(!parityArray.includes(flow)){
var par = document.createElement("div");
par.setAttribute("id","Priority"+flow);
cont.appendChild(par);
parityArray.push(flow);
}
}
}