这是我的问题,我正在编写一个游戏,我需要使用一个非常简单的数组,问题是我创建它,一切正常,下一行,数组中整行的值发生变化,我不知道不明白为什么,这是我的代码:
var ciblesPossibles = new Array();
for (var i = 0; i < 2; i++) {
for (var j = 0; j < 5; j++) {
ciblesPossibles[i,j] = 1 + portee(i, j, ID, pos, carte.effet.portee) + duBonCote(i, ID, carte.effet.ciblesLegales);
}
console.log('1/ ciblesPossibles['+i+',x] = ' + ciblesPossibles[i,0] + ciblesPossibles[i,1] + ciblesPossibles[i,2] + ciblesPossibles[i,3] + ciblesPossibles[i,4]);
}
for (i = 0; i < 2; i++) {
console.log('2/ ciblesPossibles['+i+',x] = ' + ciblesPossibles[i,0] + ciblesPossibles[i,1] + ciblesPossibles[i,2] + ciblesPossibles[i,3] + ciblesPossibles[i,4]);
}
var max = maxTab(ciblesPossibles);
for (i = 0; i < 2; i++) {
for (j = 0; j < 5; j++) {
ciblesPossibles[i,j] = Math.floor(ciblesPossibles[i,j] / max);
console.log(ciblesPossibles[i,j]);
}
}
Run Code Online (Sandbox Code Playgroud)
portee()和duBonCote()是两个只返回1或0的函数.当我在console.log('/ 1 ...')时,我有33222和22211(这就是我想要的),但是当我在console.log('/ 2 ...')时,我有22211和22211 ......什么可以让我的阵列中的第一行改变?
问候
Aln*_*tak 13
二维数组被访问a[i][j],而不是a[i,j].
后者将被视为逗号运算符的使用,并评估为just a[j],即一维矩阵.
你会想要更像的东西:
var ciblesPossibles = []; // create array to hold rows - NB: not "new Array():
for (var i = 0; i < 2; i++) {
ciblesPossibles[i] = []; // create the individual row
for (var j = 0; j < 5; j++) {
ciblesPossibles[i][j] = ...
}
}
Run Code Online (Sandbox Code Playgroud)