如何在javascript中从字符串末尾提取整数

3
我们如何从这样的数据集中提取整数(键)?
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)不是正确的解决方法,因为它可能对其他密钥无效。请建议我应该如何解决这个问题。


你在第一个 push 上缺少了一个 ) - Andy
@Andy 谢谢你告诉我这个打字错误。 - Sachin Jain
3个回答

6

您可以使用正则表达式来解决问题:

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

这将匹配以key字符串结尾的所有数字(\d+)。


哦,对了...我为什么没想到呢...非常感谢...我觉得这样可以。 - Sachin Jain

1
如果只需要每个“DAYS”删除,可以使用简单的replace
a.push(+k.replace('DAYS', ''));

Fiddle

或者,使用您的示例:

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

0

或者你可以在这里使用split并提取第二个标记:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接