Array1 = ['1,2,3']
如何通过将数值转换为非字符串来检索数值? 我一直在尝试parseInt,但我只能设法获得1作为最终结果。
感谢。
答案 0 :(得分:1)
如果您从包含字符串的数组开始,就像您的示例中一样,则需要使用split()
。
示例:
Array1 = ['1,2,3'];
var new_array = Array1[0].split(','); // new_array is ["1", "2", "3"]
for (var i = 0; i < new_array.length; i++) {
new_array[i] = parseInt(new_array[i]);
}
// new_array is now [1, 2, 3]
答案 1 :(得分:1)
通常parseInt()将任何东西(大部分时间字符串)作为输入,并从该输入中返回整数。如果它没有得到任何整数,那么它返回NaN。
为什么你得到1 !!!
每当您使用parseInt()时,它都会尝试逐个字符地读取您的输入字符。所以根据你的意见
var Array1 = ['1,2,3'];
首先得到的是&#39; 1&#39;之后&#39; ,&#39; (一个逗号,这不是一个数字)所以它会转换&#39; 1&#39;进入整数并将其作为结果返回。
解决您的问题:
var Array1 = ['1,2,3'];
//just displayed the first element of the array, use for or foreach to loop through all the elements of the array
alert(Array1[0].split(',')[0]);
答案 2 :(得分:1)
我会重新理解你为什么要将逗号分隔的字符串存储为数组元素;但是,如果推理对您的特定设计有效,那么问题是您是否有一个包含多个逗号分隔字符串的数组?
如果可以,请重新设计您的设计以实际使用整数数组,因此请使用:
var arr = [1,2,3];
而不是['1,2,3']
。
如果将逗号分隔的字符串存储为数组元素,则可以使用以下内容将每个索引作为整数数组:
var array1 = ['1,2,3', '4,5,6,7'];
function as_int_array(list, index) {
return list[index].split(',').map(function(o) { return parseInt(o,10); });
}
console.log("2nd element: %o", as_int_array(array1, 1));
// => 2nd element: [4,5,6,7]
希望有所帮助。