gpt4 book ai didi

javascript - 每次调用 JavaScript 函数时使用不同的数组

转载 作者:行者123 更新时间:2023-12-03 04:38:04 24 4
gpt4 key购买 nike

所以我有一堆看起来像这样的数组,

var arr = [characterA, characterB, characterC];
var arr2 = [characterC, characterA, characterB];
var arr3 = [characterB, characterC, characterA];

我正在用这些做一些事情(什么不重要),但看起来,

    arr[0].alignTo(columnLeft, Phaser.LEFT_CENTER);
arr[1].alignIn(columnLeft, Phaser.CENTER);
arr[2].alignTo(columnLeft, Phaser.RIGHT_CENTER);

它位于一个名为 toggle() 的函数中像这样,

  toggle:function() {
var arr = [characterA, characterB, characterC];
var arr2 = [characterC, characterA, characterB];
var arr3 = [characterB, characterC, characterA];

arr[0].alignTo(columnLeft, Phaser.LEFT_CENTER);
arr[1].alignIn(columnLeft, Phaser.CENTER);
arr[2].alignTo(columnLeft, Phaser.RIGHT_CENTER);

timer.add(1000, this.toggle, this);
},

所以我想做的基本上是每次调用这个函数时。我使用另一组 arrays所以现在我正在做arr[0]我该如何编写,以便每次调用该函数时它都会使用 arr2然后arr3然后回到arr等等。

我已经为此奋斗了一天左右。

最佳答案

如果您的意思是每次调用 toggle 都会使用其中一个 (arr),而下一次调用将使用下一个 (arr2),下一次调用将使用 next (arr3),您可以将它们放入一个数组中并记住要使用的下一个数组的索引:

// Outside the function
var arr = [characterA, characterB, characterC];
var arr2 = [characterC, characterA, characterB];
var arr3 = [characterB, characterC, characterA];
var arrays = [arr, arr2, arr3];
var index = 0;

// In the function:
toggle:function() {
var thisArray = arrays[index];
index = ++index % arrays.length; // Wraps around if necessary
thisArray[0].alignTo(columnLeft, Phaser.LEFT_CENTER);
thisArray[1].alignIn(columnLeft, Phaser.CENTER);
thisArray[2].alignTo(columnLeft, Phaser.RIGHT_CENTER);

timer.add(1000, this.toggle, this);
},

如果数组必须toggle本身内构建,我们只需将index保留在外部并仅构建我们需要的数组:

// Outside the function
var index = 0;

// In the function:
toggle:function() {
var arr;
switch (index) {
case 0:
arr = [characterA, characterB, characterC];
break;
case 1:
arr = [characterC, characterA, characterB];
break;
case 2:
arr = [characterB, characterC, characterA];
break;
}
index = ++index % 3; // Wraps around if necessary
arr[0].alignTo(columnLeft, Phaser.LEFT_CENTER);
arr[1].alignIn(columnLeft, Phaser.CENTER);
arr[2].alignTo(columnLeft, Phaser.RIGHT_CENTER);

timer.add(1000, this.toggle, this);
},

关于javascript - 每次调用 JavaScript 函数时使用不同的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43204859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com