2015-01-14 3 views
1

나는 그 값에 따라 그룹화하려는 FICO 점수 목록을 가지고 있습니다. 그룹은 0-620에서 시작하여 620-640에서 시작하여 매회 20 씩 증가합니다.범위와 함께 _.countBy 사용

각 그룹의 값 개수는 0-620, 620-640, 640-660, 660-680 등으로 780-800까지입니다.

저는 현재 _.countBy을 사용하고 있지만 모든 그룹이 아닌 모든 고유 번호에 대해 카운트를 반환합니다.

var counts = _.countBy(ficos, function(x) { return x }); 
//Counts should be {620: 22, 625: 19, 655: 24, 670: 20, 690: 30, 720: 29, 734: 17, 760: 21, 790: 18} 

_.countBy 또는 다른 기능을 활용할 수있는 방법이 있습니까? 가능한 경우 긴 if 문을 피하려고합니다.

+0

당신은 당신이 그렇게 우리가 그것을 테스트 할 수 있습니다 사용하고있는 예제 데이터를 추가해야합니다. –

답변

1

그래서 다음 해당 그룹을 반환 :

function (x) { 
    if (x < 620) return '<620'; 
    if (x >= 800) return '>800'; 

    var lower = Math.floor(x/20) * 20, 
     higher = lower + 20; 
    return lower + '-' + higher; 
} 
+0

나는 혼란 스럽다 - OP는 어떤 그룹에 속하는지 계산하는 방법을 묻고있다. 나는 그것을 얻지 않는다. –

+0

@QPaysTaxes 요구 사항에 따라 입력 번호를 특정 그룹에 그룹화하는 기능을 제공했습니다. – zerkms

+0

아니요, 주어진 숫자의 그룹을 제공하는 함수를 제공했습니다. 요구 사항은 그룹으로 묶어야한다는 것입니다. 이 결과로부터'_.countBy'를 사용하여리스트를 작성하면 요구 사항을 충족시킬 수 있지만, 이것만으로는 충분하지 않습니다. –

관련 문제