首页 > 解决方案 > 如何在javascript中的许多字符串中选择数字字符串(仅包含数字的字符串)并忽略其余字符串?

问题描述

如何选择数值元素以及如何忽略字母元素(在本例中为 "2009-10": "NA", "2010-11": "NA" )。

stateData:[ {"1999-00": "125236",
              "2000-01": "140119",
              "2001-02": "151482",
              "2002-03": "163385",
              "2003-04": "184463",
              "2004-05": "202575",
              "2005-06": "239683",
              "2006-07": "277286",
              "2007-08": "326547",
              "2008-09": "377346",
              "2009-10": "NA",
              "2010-11": "NA" }]

标签: javascript

解决方案


尝试map在其中获取 object 条目,然后过滤与 digit regex 不匹配的条目/\d+/。像这样的东西:

var stateData=[ {"1999-00": "125236", "2000-01": "140119", "2001-02": "151482", "2002-03": "163385", "2003-04": "184463", "2004-05": "202575", "2005-06": "239683", "2006-07": "277286", "2007-08": "326547", "2008-09": "377346", "2009-10": "NA", "2010-11": "NA" }];

var result = stateData.map(p=>Object.fromEntries(Object.entries(p).filter(([k,v])=>v.match(/\d+/))));

console.log(result);


推荐阅读