如何将数组的浅表副本传递给函数

how to pass a shallow copy of an array into a function

我想根据我按下的按钮在 console.log 中获得数组的不同部分,但是无论我最终按下什么按钮,我总是获得数组的最后 20 个元素。 我怎样才能让它按预期运行?

for (var i = 0; i < array.length; i++) {
      var b;
      var NewArr = [];
      if (i % 20 == 0) {
        NewArr = array.slice(i, i + 20);
        b = createButton(i + "-" + (i + 20), NewArr);
        b.position(x, y + i * 1.5);
        b.mousePressed(function () {
          console.log(NewArr);
        });
      }
}

使用 let 而不是 var

var 声明被提升到当前函数作用域的顶部,即使你在for循环。