Javascript字符串数组:推送方法不起作用

时间:2016-04-15 03:37:54

标签: javascript arrays string list push

我有一个网站加载歌曲供用户播放。这种方法" loadSongs()"基本上从文件输入中获取所有歌曲并被称为" onchange"的文件输入。我根本无法将文件名推送到我的字符串数组中:" songs"。非常感谢任何帮助,这是我的代码:

function loadSongs() {

var x = document.getElementById("file");
var songs = new Array();

if (x.files.length != 0) {

    for (var i = 0; i < x.files.length; i++) {

        var file = x.files[i];
        songs.push(file.name);

    }

}

for (var j = 0; j < songs.length; j++) {

    alert("song #" + i + ": " + songs[i]);

}

var x = document.getElementById("file"); var songs = new Array(); if (x.files.length != 0) { for (var i = 0; i < x.files.length; i++) { var file = x.files[i]; songs.push(file.name); } } for (var j = 0; j < songs.length; j++) { alert("song #" + i + ": " + songs[i]); }

我可以成功访问第一个for循环中的所有文件,因为当我做了&#34; alert(file.name)&#34;在第一个for循环中,它工作正常。不幸的是,我无法将它们放入字符串数组中。

1 个答案:

答案 0 :(得分:0)

问题不在于push方法,而是alert参数。

在第二个循环中:

for (var j = 0; j < songs.length; j++) {

    alert("song #" + i + ": " + songs[i]);

}

您有"song #" + i + ": " + songs[i],但您的循环使用j作为计数器变量。只需将i更改为j

for (var j = 0; j < songs.length; j++) {

    alert("song #" + j + ": " + songs[j]);

}