2015-06-27 122 views
1

我想寫一個簡單的函數來測試一個數組是否連續,但由於某種原因它不起作用。如果這是相關的,這是角度JS應用程序的一小部分。簡單的函數來檢查一個數組是否連續

 return function isConsecArray(arr){ 
      var i; 
      var y = (arr.length);  
     for (i=0; i < y; i += 1){ 
     if (parseInt(arr[i])+1 !== parseInt(arr[i+1])) 
     { 
     return false; 
     } 

     } 
     return true;  

回答

3

當到達最後一個元素,即i=y-1,它比較arr[i]arr[i+1],這是不確定的。您需要迭代至arr.length-1,即:

... 
for (i=1; i < y-1; i += 1) {/NOTE THE y-1 LIMIT 
... 
0

你可以寫這樣的:

function isConsecArray(arr) { 
    var previous = arr[0]; 
    var i; 
    var y = (arr.length); 
    if (y > 1) { 
     for (i=1; i < y; i += 1) { 
      if (parseInt(arr[i]) -1 !== parseInt(previous)) { 
       return false; 
      } 
      previous = arr[i];   
     } 
    } 
    return true; 
} 

的jsfiddle:http://jsfiddle.net/dq1kccvk/

相關問題