Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 遍历数组并检查某些值?_Javascript_Arrays_Loops_Pacman - Fatal编程技术网

Javascript 遍历数组并检查某些值?

Javascript 遍历数组并检查某些值?,javascript,arrays,loops,pacman,Javascript,Arrays,Loops,Pacman,我正在尝试创建一个函数,该函数将连续循环一个数组,并检查是否还有具有特定值的元素。如果没有这些元素,那么我希望函数执行某个操作 我正在检查0。如果nothing=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 = fal

我正在尝试创建一个函数,该函数将连续循环一个数组,并检查是否还有具有特定值的元素。如果没有这些元素,那么我希望函数执行某个操作

我正在检查0。如果nothing=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) {
    }
}

这不管用吗?一旦地图上的所有“0”从技术上消失,我就不会收到任何警报或任何答案。

由于您使用的是数组,请尝试使用数组的forEach方法:

最后,我假设您想要循环一个嵌套的数组

声明这些数组的方式可能有问题。例如,当您使用新的ArrayNumberOfIndex时,您设置的是数组的索引数,但您需要精确地设置任何值

请看这个:

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 Arrayvalue1、value2、value3之类的操作

请阅读以下内容:


我建议在代码中加入一些日志语句,以确保使用数组,尤其是使用具有值的数组。

问题是什么?你有错误吗?它能工作吗?如果没有,它以什么方式不起作用?好吧,当在吃豆人游戏中,所有有食物的空间都消失时,一个n空的空间是2,一个食物空间是0,我没有收到窗口警报。是haueter&larguer整数吗?仔细看看你的代码。我不认为这是装饰[1][1]的目的。更多细节请参见我的答案。现在正在更新…所以这将通过我的数组检查是否有0?@JuCho您最终将通过一个多嵌套数组进行循环。我已经用js提琴更新了答案。不起作用了,我编辑了我的原始帖子以便更清楚我不太明白嵌套数组是什么?嵌套数组还是多维数组。它是一个数组,里面有数组。这是一个数字数组->var smallArray=[1,2,3]。要获取值,可以使用smallArray[0],该值为1。多维数组如下所示-var multiArray=[]、[]、[]、[]。这是1个数组中的3个数组。然后添加值。var multiArray=[[1,2,3],[4,5,6],[7,8,9]]。所以要得到8的值,可以说是multiArray[2][1]。记住,索引以0开头。
decor[1][1] = '24'; decor[1][2] = '21'; decor[4][8]='0' ; etc 
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   
}
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]);