2014-03-04 33 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]