来自数字字符串的Javascript数组

时间:2011-11-10 21:56:00

标签: javascript

我正在尝试使用javascript中的数组。请考虑以下代码:

 var visList = '1234,5678,9'
 var visListArray = new Array(visList);
 for (i = 0; i <= visListArray.length - 1; i++)
 {
      alert(visListArray[i]);
 }

为什么不将数组拆分成单个数字而不是将它们全部聚集在一起?

任何帮助都会非常感激。

非常感谢

4 个答案:

答案 0 :(得分:8)

通过在字符串上调用split()来创建数组:

var visList = '1234,5678,9'  
var visListArray = visList.split(",");

您不能替换看起来像实际代码的代码的字符串。虽然这可行:

var visListArray = new Array(1234,5678,9);

你的不是因为字符串没有被Array构造函数解释为3个逗号分隔的参数,它被解释为一个字符串。

编辑:请注意,在字符串上调用split()会产生一个字符串数组。如果需要数组数组,则需要迭代数组,将每个字符串转换为数字。一种方便的方法是使用map() method

visListArray = visList.split(",").map(function (item) {
    return +item;
});

请参阅compatibility note在旧版浏览器中使用map()

答案 1 :(得分:1)

因为它是一个字符串,试试这个:

var visList = '1234,5678,9'
var visListArray = [].concat(visList.split(','));
for (i = 0; i <= visListArray.length - 1; i++) {
    alert(visListArray[i]);
}

答案 2 :(得分:1)

您必须使用string.split

var visList = '1234,5678,9'
var visListArray = visList.split(",");

for (i = 0; i <= visListArray.length - 1; i++)
{
    alert(visListArray[i]);
}

答案 3 :(得分:1)

要将符号分隔列表转换为数组,您可以使用 split(symbol):

var list = "1221,2323,4554,7667".split(",");
for (var i = 0, il = list.length; i < il; i++) {
    alert( +list[i] ); // a casting from string to number
}