【问题标题】:traverse (iterate) each element of array in specific time?在特定时间遍历(迭代)数组的每个元素?
【发布时间】:2021-12-03 17:58:18
【问题描述】:

我有一个包含 200 个元素的数组,例如 -100 到 100。我想在特定的持续时间内遍历或迭代整个数组。例如,我想在 5 秒或 1 分钟内遍历或迭代这个数组。这取决于用户,定义遍历整个数组的时间。我该怎么做?

const array = [-100,-99,-98....0....98,99,100];

function traverseArr(){
....

}

【问题讨论】:

  • 将您的全部时间除以数组长度并使用 setTimeOut。注意:时间会加到自然机迭代时间中。

标签: javascript arrays reactjs


【解决方案1】:

您可以为间隔取一个函数并计算每个元素的持续时间。

function traverseArray(array, time, fn) {
    let i = 0;
    const handle = setInterval(() => {
        if (i < array.length) fn(array[i++]);
        else clearInterval(handle);
    }, time / array.length);

}

traverseArray([5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5], 10000, v => console.log(new Date().toISOString(), v));
.as-console-wrapper { max-height: 100% !important; top: 0; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 2011-10-05
    相关资源
    最近更新 更多