2014-03-04 2 views
0

어떻게 이러한 데이터 세트에서 정수 (키)를 추출 할 수 있습니까?자바 스크립트에서 문자열의 끝에서 정수를 추출하는 방법

data : { 
    DAYS7: 234, 
    DAYS21: 3456, 
    DAYS35: 23456 
} 

나는 두 배열 [7, 21, 35][234, 3456, 23456]에이 데이터를 변환 할.

코드 :

var a = [], b = []; 
for (var key in data) { 
    a.push(getIntPart(key)); 
    b.push(data[key]); 
} 

function getIntPart(key) { 
    key = key.substring(4); //Remove DAYS word 
    return parseInt(key); 
} 

나는 key.substring(4) 그것이 다른 키 실패 때문에 그것을 할 올바른 방법으로하지 않습니다 생각합니다. 이 문제를 어떻게 해결해야하는지 제안하십시오.

+0

첫 번째 푸시 btw에')'가 없습니다. – Andy

+0

@ 앤디 오타를 말하여 주셔서 감사합니다 – sachinjain024

답변

1

당신은 regular expression을 사용할 수 있습니다 :

key = (key.match(/\d+$/) || []).pop(); 

key 문자열의 끝 ($)에서 모든 숫자 (\d+)을 일치합니다.

+0

오, 오 .. 왜 이런 생각을하지 않았습니까? 많이 고마워요. 할 것 같습니다. – sachinjain024

0

당신이 사용에게 replace 간단하게 제거 할 필요가 매 "일"의 경우

a.push(+k.replace('DAYS', '')); 

Fiddle

또는 귀하의 예제를 사용하여 :

function getIntPart(key) { 
    key = key.replace('DAYS', ''); 
    return parseInt(key); 
} 
0

는 다른 방법으로 사용할 수있는 분할 여기에 두 번째 토큰을 추출하십시오.

key = key.split(/(\d+)/)[1]