2014-03-06 49 views
0

我有一個數組,我已循環到數組中,並查找值爲'100,0或休息'的值在一行中。查找值數組並計算它

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++,由一個或

其他 [ "Jai", 100, 100, 100, 100 ]增加再算上count100++,由一個

那麼,如何來完成這件事遞增。它應該只看到,如果一個行只有100值,如果只有一個行100則僅增加...

回答

1

這應該做的伎倆。對於每個要測試的子數組,將一些變量設置爲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++;} 
} 
+0

不錯,這是我一直在尋找的......謝謝兄弟.... – user3047780

+0

很高興幫助;) –

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++; 
    } 
} 
+0

的結構不同.....它可以有更多然後 '5' 的值在一排...等[ 「JAI」,0,1,0,1,0,10, 1,50等] ...... – user3047780

0
for(key in array1){ 
    if(array1[key].indexOf(100)!=-1){ 
     count100++; 
    } 
    else if(array1[key].indexOf(1)!=1){ 
     countrest++; 
    } 
    else{ 
     count0++; 
    } 
} 
相關問題