2017-03-07 4 views
1

私はjavascript \ jqueryを使用していますので、数値の配列値が連続して連続していて、Javascript Jquery数値配列の値が連続して連続していて不正確な値を返すかどうかを調べる

ARR = [1,2,3,10,15,30] 配列が連続的であるだけ1,2,3 contigousです... 10 15と30が正しくありません。

UPDATE

アレイはこのARRのようなものである場合= 1,2,3,10,11,12,15,30,50】正確な配列は、2 ... 1,2でなければなりません3および10,11,12

複数の正しい配列を特定するにはどうすればよいですか?事前に

おかげで、 のCla

答えて

1

あなたはArray#filterを使用して、先行または後続をチェックcoud。追加の質問に対する

var array = [1, 2, 3, 10, 15, 30], 
 
    result = array.filter(function (a, i, aa) { 
 
     return aa[i - 1] + 1 !== a && a + 1 !== aa[i + 1]; 
 
    }); 
 
    
 
console.log(result)

EDIT。

左と右のチェックとテストIDには、空の配列を追加し、後で値を最後の内部配列にプッシュするための2つの変数を使用できます。

var array = [1, 2, 3, 10, 11, 12, 15, 30, 50], 
 
    result = array.reduce(function (r, a, i, aa) { 
 
     var left = aa[i - 1] + 1 === a, 
 
      right = a + 1 === aa[i + 1]; 
 

 
     if (!left && right && (!r[r.length - 1] || r[r.length - 1].length)) { 
 
      r.push([]); 
 
     } 
 
     if (left || right) { 
 
      r[r.length - 1].push(a); 
 
     } 
 
     return r; 
 
    }, []); 
 
     
 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

アレイは、このようなARR = 1,2,3,10,11,12,15,30,50】正しい配列である場合2 ... 1,2,3および10,11,12 複数の正しい配列を特定するにはどうすればよいですか? – Memento

+0

新しい質問をしてください。 –

1

var arr = [1,2,3,10,15,30], 
 
arr1=[1,2,3,4,5,6,10], 
 
arr2=[10,11,40,50]; 
 

 
var checkArray=function(array){ 
 
    var lastNum; 
 
    array.forEach(function(num,index){ 
 
    if(index===0) 
 
     lastNum=num; 
 
    else{ 
 
     if(lastNum+1===num) 
 
     lastNum=num; 
 
     else 
 
     console.log(num); 
 
    } 
 
    }); 
 
} 
 
checkArray(arr); 
 
console.log('----------------'); 
 
checkArray(arr1); 
 
console.log('----------------'); 
 
checkArray(arr2);

関連する問題