如何将数组的浅表副本传递给函数
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
循环。
我想根据我按下的按钮在 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
循环。