2016-10-05 4 views
-3

안녕하세요 배열의 5 개의 임의 숫자가 오름차순인지 확인하고 싶습니다. 이에서 예 : 이것에배열의 임의의 숫자에 5가 오름차순으로 포함되어 있는지 확인하십시오.

var array = [2, 5, 5, 4, 7, 3, 6]; 

:

array = [3,4,5,6,7]; 

jQuery를에 정렬 이런 종류의 모든 바로 가기가 있습니까 :

array = [2,3,4,5,6]; 

물론 높은 순서 가능한 경우

? 미리 감사드립니다.

+0

jQuery를이 포괄 모두를위한 아닙니다. 또한 앉아서 생각해보십시오. 'for '루프를 사용하는 방법을 알고 있다고 가정하면 각 숫자가 마지막보다 큼을 어떻게 검증 할 것입니까? 아직 코드에 대해 생각조차하지 마십시오. 그냥 pseudo-code로 해결 한 다음 JS를 작성하여 일치시킵니다. –

+0

확인 하시거나 변환 중입니까? – Redu

+0

@Redu는 단지 확인했지만 정렬 된 배열에서 가장 높은 값을 알아야합니다. js에서 포커 텍사스 홀덤을 쓰고 있습니다. 테이블과 플레이어 중 한 명으로부터 나온 카드 수의 배열을 얻었습니다. 5 개의 연속 번호가 있는지 확인하고 싶습니다. – Sintari

답변

0

var array = [2, 5, 5, 4, 7, 3, 6]; 
 
//first convert into an object literal for fast lookups. 
 
var ao = {}; 
 
array.forEach(function (e) { ao[e] = true; }); 
 

 
//now loop all in array, and then loop again for 5 
 
array.forEach(function (num) { 
 
    var count = 0, l; 
 
    for (l = 0; l < 5; l ++) { 
 
    if (ao[num + l]) count ++; 
 
    } 
 
    if (count === 5) { 
 
    //found, push into array just to show nice in console 
 
    var nums = []; 
 
    for (l = 0; l < 5; l ++) { 
 
     nums.push(num + l); 
 
    } 
 
    console.log(nums.join(',')); 
 
    } 
 
});

+0

그게 내가 찾고 있었던거야! 감사. – Sintari

0

나는이 트릭 할 것, 생각 :

  • 고유 회원 종류 그 5

마지막

  • 슬라이스
  • 을 얻을 수를 (또는 역방향, 처음 5 슬라이스, 역방향)처럼 배열이 5보다 작을 수 있기 때문에 했었습니다.

    결과 배열의 길이가 5 인 경우 긍정적 인 답을 얻을 수 있습니다. .

    console.log($.unique([2,5,5,4,7,3,6]).sort().reverse().slice(0,5).reverse()) 
    
  • 0
    당신은 다음과 같이 할 수

    ;

    function checkStraight(a){ 
     
        var s = [...new Set(a)].sort((a,b) => a-b); 
     
        return s.length >= 5 && s.reduce((p,c,i,a) => c - a[i-1] === 1 ? ++p 
     
                       : p < 5 ? 1 
     
                         : p , 1) > 4; 
     
    } 
     
    var array = [2, 5, 5, 4, 7, 3, 6, 9], 
     
        result = checkStraight(array); 
     
    console.log(result);

    관련 문제