Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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:我需要一个包含条件变量的If语句(对于If语句中的循环?)_Javascript_Loops_For Loop_Multidimensional Array_Nested - Fatal编程技术网

Javascript:我需要一个包含条件变量的If语句(对于If语句中的循环?)

Javascript:我需要一个包含条件变量的If语句(对于If语句中的循环?),javascript,loops,for-loop,multidimensional-array,nested,Javascript,Loops,For Loop,Multidimensional Array,Nested,我有一个二维数组,我在其中循环创建一个表。例子: 假设我有数组[y][x]。数组[0][x]将填充标题列,数组[1][x]将创建第二列,依此类推。y代表每个类别/行。这有点混乱,所以这里有一个图表: [0][0]Device | [1][0] Device 1 | [2][0] Device 3 | [3][0] Device 1(Duplicate) ---------------------------------------------------------------------

我有一个二维数组,我在其中循环创建一个表。例子: 假设我有
数组[y][x]
。数组
[0][x]
将填充标题列,
数组[1][x]
将创建第二列,依此类推。y代表每个类别/行。这有点混乱,所以这里有一个图表:

[0][0]Device    | [1][0] Device 1 | [2][0] Device 3 | [3][0] Device 1(Duplicate)
--------------------------------------------------------------------------------
[0][1]category1 | [1][1]          | [2][1]          | [3][1]
--------------------------------------------------------------------------------
[0][2]Category2 | [1][2]          | [2][2]          | [3][2]
我必须检查
[y][1]
中的每一列中是否存在重复项,如果
数组[y][1]
中存在重复项,我根本不想打印该列

我用两个嵌套的for循环打印每一列和每一行

// for every named field, generate a row for each disk
//x represents each table category, which is in rows
for (var x = 0; x < array[0].length; x++) {
    // code to print table with field_names[0][x]
    for (var y = 1; y < (array.length); y++) {
        new_row += "<td>" + [array[y][x]];
    }
}
//对于每个命名字段,为每个磁盘生成一行
//x表示每个表类别,以行为单位
对于(var x=0;x
我目前的想法是,每次进程到达数组[y][1]时,我都需要检查它是否与前几列[y-1][1]、[y-2][1]、[y-3][1]等的值匹配,因为我只想打印表列的第一个实例。因此,我基本上是在寻找一种方法,以使一个为或一段时间的循环,不去打印狂热和打印我的所有表格多次。在伪代码中,我需要一些功能:

如果数组[y][1]==数组[i][1],其中(i=(y-1);i>0;i--)
,则不打印列


唯一的问题是,每次我试图定义I时,它都会影响我打印的代码的其余部分,因为所有内容都是嵌套的。请帮忙!非常感谢你

你把答案写在你的思想段落中。检查
是否匹配
如果匹配则不打印

for(var y = 1; y< array.length; y++){
    for(var x = 0; x < array[0].length; x++){
        for(var i = array[0].length; ; i--){
            if(array[y][i] == array[y][x]){
                //don't print!
            }else{    
                //print!
            }
        }
    }
}
for(变量y=1;y

就性能而言,这不是最好的,但它将确保您不会打印任何副本。我会按照@barmar的建议为每一行创建一个对象。但是,如果您不想这样做,那么您应该能够实现上述功能来做您想做的事情

你把答案写在你的思想段落中。检查
是否匹配
如果匹配则不打印

for(var y = 1; y< array.length; y++){
    for(var x = 0; x < array[0].length; x++){
        for(var i = array[0].length; ; i--){
            if(array[y][i] == array[y][x]){
                //don't print!
            }else{    
                //print!
            }
        }
    }
}
for(变量y=1;y

就性能而言,这不是最好的,但它将确保您不会打印任何副本。我会按照@barmar的建议为每一行创建一个对象。但是,如果您不想这样做,那么您应该能够实现上述功能来做您想做的事情

打印前,对每行进行迭代,记录第一次出现的值。每次看到此记录不是新记录时,请不要打印它

var found, aux;  
for(var y = 1; y < array.length; y++) {

    aux = {};

    for(var x = 0; x < array[0].length; x++) {

       found = false;

       for (var i = 0; i < aux.length; i++) {
           if (aux[i] == array[y][x]) { found = true; break; }
       }

       if (!found) {
          aux.push(array[y][x]);
          //render
       }

    }
}
var-found,aux;
对于(变量y=1;y
不是很有效率,但是


希望我能帮上忙。

在打印之前,在每一行上迭代,记录第一次出现的值。每次看到此记录不是新记录时,请不要打印它

var found, aux;  
for(var y = 1; y < array.length; y++) {

    aux = {};

    for(var x = 0; x < array[0].length; x++) {

       found = false;

       for (var i = 0; i < aux.length; i++) {
           if (aux[i] == array[y][x]) { found = true; break; }
       }

       if (!found) {
          aux.push(array[y][x]);
          //render
       }

    }
}
var-found,aux;
对于(变量y=1;y
不是很有效率,但是


希望我能帮上忙。

为每一行创建一个对象,其属性是以前见过的值。然后在显示列之前检查属性是否存在。应将数组转换为基于行的数组。这使得它的内存效率更高,并且您可以很容易地从中为每一行创建一个对象,该行的属性是以前见过的值。然后在显示列之前检查属性是否存在。应将数组转换为基于行的数组。这使得它的内存效率更高,而且您可以很容易地从中受益