我正在尝试创建一个不断循环遍历数组的函数,并检查是否仍然存在具有特定值的元素。如果没有更多这些元素,那么我希望该函数执行某个操作。
我正在检查0
。如果没有= 0
,那么我想显示图像。这是我的,有什么建议吗?
function partiewin() {
// On verifie si il y a encore des cases avec pour valeur '0' et si non, on fini la partie
var found = false;
for (i = 1; i <= hauteur; i++) {
for (j = 1; j <= largeur; j++) {
if (decor[i][j] != 0) {
window.alert("You win");
found = 1;
}
}
}
if (!found) {
}
}
这是数组
var decor = new Array(hauteur);
for (i = 0; i <= hauteur; i = i + 1) {
decor[i] = new Array(largeur);
}
数组是这个形状的长列表:
decor[1][1] = '24'; decor[1][2] = '21'; decor[4][8]='0' ; etc
不应该这样吗?一旦所有'0'在技术上从地图中消失,我都没有得到任何警报或任何答案..
答案 0 :(得分:0)
由于您使用的是数组,请尝试使用数组的forEach方法: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
最后,我想你想要遍历一个嵌套的数组数组。
http://jsfiddle.net/TylersDesk/yg8ag0vq/
var arrayOfArrays = [
[2,1,2,3,4,5],
[2,1,2,1,4,5],
[8,1,2,3,4,5],
[4,1,2,3,4,5],
[2,1,2,3,4,5],
[2,1,2,3,0,5],
];
var flag = false;
for (i=0; i<arrayOfArrays.length; i++) {
arrayOfArrays[i].forEach(function(value, index, array){
console.log(value);
if (value === 0) {
console.log('Found a value');
flag = true;
}
});
}
if (flag) {
//do work
}
声明这些数组的方式可能存在问题。例如,当你使用new Array(numberOfIndexes)时,你要设置数组的索引数量,但是你的螺母确切地设置了任何值。
所以看看:
var hauteur = 40;
var largeur = 20;
var decor = new Array(hauteur);
for (i=0; i <= hauteur; i=i+1)
{
decor[i] = new Array(largeur);
}
console.log(decor);
console.log(decor[0][1]);
如果hauteur和larguer是整数,他们只是创建一个没有值的数组。
请注意,如果您将单值传递给new Array()
,则表示数组的长度,而不是值。要设置值,您需要执行new Array(value1, value2, value3,)
阅读本文:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
我建议在代码中加入一些日志语句,以确保您使用数组,更具体地说是使用值的数组。