好吧,我对 JS 比较陌生,但在 python 和 java 方面有丰富的经验。
我的代码有两个问题需要帮助。首先这是我的代码的解释和背景。
理想情况下,我想要最简单的结构化视觉排序程序,我可以将其用作我的编码进程的基础以供参考。我首先最大化一个容器 div,它用于填充 x 数量的 div .bars,div 的宽度和位置在插入时由 Flexbox 自动处理。每个添加的 div 的高度是随机生成的,并存储在每个单独的元素属性中。我已经完成了所有这些,很简单。然后我创建了一个元素交换器函数,可以交换 DOM 中的元素位置,效果非常好。现在回答我的问题。我希望看到元素在 for 循环迭代时实时排序,但直到循环结束它们才会更新。我找不到任何错误的插入算法也无法正常工作,但我不认为我的工作方法是错误的。任何帮助将不胜感激。对于其他人来说应该非常容易弄清楚。
const sortDisplay = document.getElementById('sortDisplay');
let resetbtn = document.querySelector('.reset');
resetbtn.addEventListener('click', reset);
let count = 0;
let amount = 100;
// create div that has custom attribute value, unique style tag, default bar style and append.
function generateBar() {
// generate div
let bar = document.createElement('div');
// keep track of the total amount of bars
count++;
// assign random number 0-100 and setAttribute to the div
let temp = Math.floor(Math.random() * 101);
// create custom attribute that holds its value
bar.setAttribute('value', temp);
// create unique style tag with height as a percentage based on Attribute
let barHeight = document.createElement('style');
barHeight.innerHTML = `.barHeight${count} {height: ${temp}%;}`;
// add that unique style to the DOM
sortDisplay.appendChild(barHeight);
// now add that unique style to the div
bar.classList.add(`barHeight${count}`);
// use standard style from css as well
bar.classList.add('sortBar');
// now add that div to the DOM
sortDisplay.appendChild(bar);
}
// clear container div and regenerate
function reset() {
// clear all data within the container
sortDisplay.innerHTML = '';
// reset the count
count = 0;
// generate k bars
for (let i = 0; i < amount; i++) {
generateBar();
}
}
GCT1015
相关分类