我有一个数组,我已经循环进入数组并找到连续值为'100,0或rest'的值。
var num100=100,num0=0,rest,count100=0,count0=0,countrest=0;
var array1= [
/* Reduced data set */
[ "Manoj", 100, 1, 1, 1 ],
[ "Jai", 0, 0, 0, 0 ],
[ "Pradeep", 1, 1, 1, 1 ],
[ "Reena", 0, 0, 0, 0 ],
[ "Santos", 100, 1, 1, 1 ],
[ "Brock", 0, 1, 1, 1]
];
for(var i=0;i<array1.length;i++) {
for(var j=1;j<array1[i][j].length;j++) {
if(array1[i][j]==100){count100++;}
else if(array1[i][j]==0){count0++;}
else countrest++;
}
}
我想要的是,我想循环到每一行,如果某个特定行的值为零,百或休息,则增量应按如下方式进行。
[ "Jai", 0, 0, 0, 0 ]
然后计算count0++
,即递增1。
如果
[ "Jai", 0, 1, 0, 1 ]
然后计算countrest++
,即递增1或
否则
[ "Jai", 100, 100, 100, 100 ]
然后计算count100++
,即递增1
那么,如何完成这项工作。它应该只看到一行只有100个值,如果只有一行是100然后只增加...
答案 0 :(得分:1)
这应该可以解决问题。对于要测试的每个subArray,将一些变量设置为true。如果事实证明其中一个项目不是0或不是100,则附带的变量设置为false。结果随后被捕获并解释。
var count0 = 0; var count100 = 0; var countrest = 0;
for(var a = 0 ; a < array1.length ; a++){
var zero = true; var hundred = true;
for(var b = 1 ; b < array1[a].length ; b++){
if(array1[a][b] != 0){zero = false;}
else if(array1[a][b] != 100){hundred = false;}
}
if(zero == true){count0++;}
else if(hundred == true){count100++;}
else{countrest++;}
}
答案 1 :(得分:0)
如果数组结构总是相同
for(var i=0;i<array1.length;i++){
if(array1[i][1] == array1[i][2] == array1[i][3] == array1[i][4]){
if(array1[i][1]==100){count100++;}
else if(array1[i][1]==0){count0++;}
}else{
countrest++;
}
}
答案 2 :(得分:0)
for(key in array1){
if(array1[key].indexOf(100)!=-1){
count100++;
}
else if(array1[key].indexOf(1)!=1){
countrest++;
}
else{
count0++;
}
}