["57300","730","17300","17330","17340","70","220","320","380","420","340","130","50","280","360","550","43110","44340","400","620","440","20","72850"]
是否将一个字符串数组传递回javascript函数,该函数继续对其进行处理以将其分解为字符串数组(使用带有“,”作为分隔符的split函数)。
这里的问题是,我需要将之后的每个转换为整数。听起来很容易。
所以我继续做:
$.each(data, function(i, item)
就可以了。如果我控制台登录该项目,我可以看到它是“57300”,“730”等等。这很好。但如果我尝试这样做:
var number = parseInt(item, 10);
并且控制台记录的是什么号码......它的NaN(不应该是没有引号的57300,730等?)。是否有一些隐藏的角色搞砸了我导致parseInt破坏?
答案 0 :(得分:2)
根据你的帖子,你在逗号上分割字符串,这意味着你要在数字周围留下引号。这意味着你正在做相当于parseInt(“\”573007 \“”)。在调用parseInt之前,您需要删除引号。
答案 1 :(得分:2)
我认为你的初始字符串如下所示,
var result = '"57300","730","17300","17330"';
由于您将,
拆分为分隔符,因此最终会得到如下所示,
data = ["\"57300\"","\"730\"","\"17300\"","\"17330\""];
基本上是带引号的字符串..当您使用parseInt
parseInt("\"57300\"", 10); //throws NaN
<强>解决方案:强>
相反,您可以使用[]
而不是split
使用parseJSON
函数来包装该数据。见下文,
var result = '"57300","730","17300","17330"';
result = '[' + result + ']';
var data = $.parseJSON(result);
$.each(data, function (i, item) {
var number = parseInt(item, 10);
alert(number);
});