2014-03-04 64 views
0

如何從這樣的數據集中提取整數(鍵)?如何從javascript中的字符串末尾提取整數

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

你錯過了''''在第一'推'順便說一句。 – 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]