浏览一个数组并检查某些值?

时间:2015-05-29 16:57:22

标签: javascript arrays loops pacman

我正在尝试创建一个不断循环遍历数组的函数,并检查是否仍然存在具有特定值的元素。如果没有更多这些元素,那么我希望该函数执行某个操作。

我正在检查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'在技术上从地图中消失,我都没有得到任何警报或任何答案..

1 个答案:

答案 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

我建议在代码中加入一些日志语句,以确保您使用数组,更具体地说是使用值的数组。