【发布时间】:2018-12-20 15:21:54
【问题描述】:
我正在创建一个音乐播放器,但遇到了 for 循环和数组的问题。我的 main.js 文件中有以下函数
function CreateDatabaseArtists() {
for (n = 0; n < DatabaseArtists.length+1; n++) {
if (DatabaseArtists[n.toString()].name === "") {} else {
let NewArtistBtn = document.createElement("div");
NewArtistBtn.id = DatabaseArtists[n].artistgroup;
// NewArtistBtn.onclick = function() {OpenArtist(NewArtistBtn.id);};
NewArtistBtn.classList.toggle("column");
NewArtistBtn.setAttribute("style", "word-wrap: break-word; float: none; width: 150px; text-align:center;align-items:center; display: inline-block; white-space: nowrap; overflow: hidden; text-overflow:ellipsis;");
let ArtistIMG = document.createElement("img");
if (DatabaseArtists[n].ArtistArt == "") {
ArtistIMG.src = "https://iplock.weebly.com/uploads/9/5/7/3/95731436/p298.png";
ArtistIMG.style.borderRadius = "50%";
} else {
ArtistIMG.src = DatabaseArtists[n].ArtistArt;
ArtistIMG.style.borderRadius = "50%";
}
ArtistIMG.style.width = "150px"; ArtistIMG.style.height = "150px";
NewArtistBtn.appendChild(ArtistIMG);
let text = document.createElement("p");
text.innerHTML = "ahhh-humbug";
// DatabaseArtists[b].name;
ArtistIMG.setAttribute("aria-label", text.innerHTML);
NewArtistBtn.appendChild(text);
document.getElementById("artists").appendChild(NewArtistBtn);
}
}
}
还有带有
的部分for (n = 0; n < DatabaseArtists.length+1; n++) {
if (DatabaseArtists[n.toString()].name === "") {}
一直失败,我收到一条错误消息,说它找不到“name”的变量,即使在数组中它是"name": "AJR", "explicit": false, "artistgroup": "ajr", "ArtistArt": ""
我该怎么办?
【问题讨论】:
-
你能发布实际的错误信息吗?
console.log(DatabaseArtists[n.toString()])的输出? -
您是否在代码的其他地方初始化了“n”变量?如果你没有,那可能是你的问题。 var n = 0;
-
@LloydNicholson 不,我没有,它是我代码中的第一个也是唯一一个“n”变量。
-
@Samsquanch 错误代码只是“找不到变量 DatabaseArtists[n].name”
-
@RidleyNelson 然后在 for 循环中初始化它。 var n = 0;
标签: javascript arrays string for-loop find