Javascript 将字符串数组转换为整数数组无效
我有以下数组:Javascript 将字符串数组转换为整数数组无效,javascript,angularjs,Javascript,Angularjs,我有以下数组: s = "215, 216, 217" 当我这样做的时候 s.split(",").map(Number) 我要把这个拿回来: [NaN, 216, NaN] 如果s只有两个数字,则两者都返回为NaN。救命啊 更新: 修好了!我必须去掉字符串周围的引号,因为我是从cookie中获取的 s.replace(/\"/g, "").split(",").map(Number) 我成功了 谢谢 这将解释: s.split(",").map(function(item){ re
s = "215, 216, 217"
当我这样做的时候
s.split(",").map(Number)
我要把这个拿回来:
[NaN, 216, NaN]
如果s只有两个数字,则两者都返回为NaN。救命啊
更新:
修好了!我必须去掉字符串周围的引号,因为我是从cookie中获取的
s.replace(/\"/g, "").split(",").map(Number)
我成功了
谢谢 这将解释:
s.split(",").map(function(item){ return item.trim() }).map(Number)
数字之间有空格:
s = "215,/* here */ 216,/* here */ 217"
其他可能的解决方案
s.replace(/\s/g,'').split(',').map(Number)
或者是最初的方法,但使用正则表达式来消除多余的空间:
s.split(/\s*,\s*/).map(Number)
你在用什么浏览器?Google Chrome,最新版本不能在Google Chrome版本34.0.1847.131中复制事实上,我是通过cookies来实现的,当我对字符串进行
拆分(“,”
)时,我得到以下信息:[“215”,“216”,“217”]
更新你的问题?我刚刚意识到,因为它正在通过cookies,当我刚刚执行.split(“,”)
时,我得到了这样一个信息:[“215”、“216”、“217”]
需要去掉数组s.split(“,”).map(function(item){return item.match(/\d+/)}中周围的引号。
谢谢@Ejay我试图说明一点,尽管你的选择非常有效。我也在考虑s.replace(/\s/g,,).split(,).map(Number)似乎@MohamedElMahallawy就是这样做的:)