我正在尝试制作一个通过数组'CA'的小脚本,并为每个元素制作几个新的数组,这些数组采用了'CA'的环绕部分,所有部分都集中在该元素上。这是代码:
var max = 10,
thisVar = {}
CA = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
for (j = 0; j < 5; j++) {
for (i = 0; i < max; i++) {
thisVar["groupS" + j + "C" + i] = [CA[i]]
for (a = 1; a <= j; a++) {
if ((i - a) < 0) {
thisVar["groupS" + j + "C" + i].unshift(CA.reverse()[-(((i + 1) - a) % max)])
} else {
thisVar["groupS" + j + "C" + i].unshift(CA[(i - a)])
}
thisVar["groupS" + j + "C" + i].push(CA[((i + a) % max)])
}
}
}
console.log(thisVar.groupS1C0);
这将返回['j','a','i'],但我期望的是['j','a','b']。似乎问题是.push(),但是在这种情况下,变量'a'肯定是1吗?
答案 0 :(得分:1)
我希望这是您要寻找的。只需反转CA并将其推入即可。您将获得预期的输出['j','a','b']。
max = 10
CA = ['a','b','c','d','e','f','g','h','i','j']
for (j=0; j<5; j++){
for (i=0; i<max; i++) {
this["groupS" + j + "C" + i] = [CA[i]]
for (a=1; a<=j; a++) {
if ((i-a) < 0) {
this["groupS" + j + "C" + i].unshift(CA.reverse()[-(((i+1) - a) % max)])
}
else {
this["groupS" + j + "C" + i].unshift(CA[(i-a)])
}
this["groupS" + j + "C" + i].push(CA.reverse()[((i+a) % max)])
}
}
}
console.log(groupS1C0)