javascripts中的数组和字符串

时间:2014-06-30 21:06:04

标签: javascript

Array1 = ['1,2,3']

如何通过将数值转换为非字符串来检索数值? 我一直在尝试parseInt,但我只能设法获得1作为最终结果。

感谢。

3 个答案:

答案 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]

希望有所帮助。