有些人说这个函数里面的forEach不好,我应该使用map。所以,我想知道我该如何使用map
有些人说这个函数里面的forEach不好,我应该使用maps。所以,我想知道我该如何使用maps:* 我还希望这是一个可重用的函数,这样我就可以在任何地方调用它 *
我如何使这段代码更干净。没有Jquery
JS:
const about = document.getElementById('about');
const numbers = document.querySelectorAll('.number');
const svgEl = document.querySelectorAll('svg circle');
const counters = Array(numbers.length);
const intervals = Array(counters.length);
counters.fill(0);
function moveprogressbar() { numbers.forEach((number, index) => {
intervals[index] = setInterval(() => {
if(counters[index] === parseInt(number.dataset.num)){
clearInterval(counters[index]);
} else{
counters[index] += 1;
number.textContent = counters[index] + "%";
svgEl[index].style.strokeDashoffset = Math.floor(472 - 440 * parseFloat(number.dataset.num / 100));
}
}, 20);
});
}
2条答案
按热度按时间n1bvdmb61#
只需使用map关键字更改forEach以使用map,而不像forEach,map将返回一个新数组,但如果您只是想迭代,我认为forEach优于map
kmbjn2e32#
只是简单地使用map关键字而不是forEach