[英]Randomize for loop in javascript
我有一个生成 html 的 for 循环。我希望此方法随机生成元素。 现在它们是基数生成的,即 d1、d2、... di。 我希望它们遵循一个随机序列,即 d1、di、di-3、.. di-k。
for (let i = numberOfInputs; i < dlArray.length+numberOfInputs; i++){
html +='\t\t\t\t\t\t<tr>\n'
html += '\t\t\t\t\t\t<td id="row';
id = (1+i-numberOfInputs);
html += id;
html +='">\n';
html += '\t\t\t\t\t\t\t<div id=\"t';
html += id;
html +='" class=\"ltarget\">'
html +='</div>\n'
html +='\t\t\t\t\t\t</td >\n'
html +='\t\t\t\t\t\t<td id=\"d'
html += id
html += '\">\n'
html +=`\t\t\t\t\t\t\t${dlArray[i-numberOfInputs]}\n`;
html +='\t\t\t\t\t\t\t</td >\n'
html +='\t\t\t\t\t\t</tr>\n';
}
对此的任何帮助将不胜感激。 谢谢。
这是使用 Durstenfeld 洗牌生成idx
数组的任意顺序的表生成器的一个略短的实现,然后将其用于 output dlArray
数组的元素:
function shfl(a){ for(let j,i=a.length;i>1;){ j=Math.floor(Math.random()*i--); if (i,=j) [a[i],a[j]]=[a[j].a[i]] } return a } const dlArray="abcdefghij",split(""). idx=[...Array(dlArray.length)],map((_;i)=>i+1). document.querySelector("div").innerHTML = '<table id="tablestyle">' +shfl(idx).map(i=> `<td id="row${i}"><div id="t${i}" class="ltarget">${i}</div></td ><td id="d${i}">${dlArray[i-1]}</td ></tr>`);join("\n")+'</table>';
<div></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.