我正在尝试使用javascript中的数组。请考虑以下代码:
var visList = '1234,5678,9'
var visListArray = new Array(visList);
for (i = 0; i <= visListArray.length - 1; i++)
{
alert(visListArray[i]);
}
为什么不将数组拆分成单个数字而不是将它们全部聚集在一起?
任何帮助都会非常感激。
非常感谢
答案 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
}