这是我的第一个问题,我希望在这里找到答案。
我有一个数组

var arr = ['red', 'blue', 'black', 'green'];


我想遍历它,以便每次单击console.log();时都可以btn一个元素并保持跟踪索引,以便在单击其他btn时可以向后迭代。

nextBtn.addEventListener('click',nextItem)

prevBtn.addEventListener('click',prevItem)


谢谢

最佳答案

您可以对索引进行闭包,然后返回带有用于获取数组的下一个或上一个值的函数的对象。



var array = ['red', 'blue', 'black', 'green'],
    index = function (i) {
        var out = document.getElementById('out');

        out.innerHTML = array[i];
        return {
            prev: function () {
                i && i--;
                out.innerHTML = array[i];
            },
            next: function () {
                i + 1 < array.length && i++;
                out.innerHTML = array[i];
            }
        }
    }(0);

document.getElementById('nextBtn').addEventListener('click', index.next);
document.getElementById('prevBtn').addEventListener('click', index.prev);

<button id="prevBtn">prev</button> <span id="out"></span> <button id="nextBtn">next</button>

关于javascript - 一次遍历数组前进和后退?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48026118/

10-14 14:35
查看更多