在 Javascript 中从自定义类型写入数组

Writing from a custom type to an array in Javascript

本文关键字:数组 类型 自定义 Javascript      更新时间:2023-09-26

我已经在这个问题上卡了几天了。我可以让我的相册写入控制台,但我不知道如何让它们写入数组。代码的工作原理是,当我单击"显示相册"按钮时,它只返回[对象,对象]以外的任何内容。谁能帮我弄清楚如何将新相册写入数组以使其正确显示?提前谢谢。

(function() {
    var name = document.getElementById("name");
    var year = document.getElementById("year");
    var showbutton = document.getElementById("showlist");
    var submitbutton = document.getElementById("submit");
    var validate = document.getElementById("validate");
    var albumlist = [];
    var albums = function album(name, year) {
        this.name = name;
        this.year = year;
        this.album = function() {
            return ((this.name + ", " + this.year));
        };
    }
    albums.prototype.genre = "rock";
    var album1 = new albums("album1", "1999");
    var album2 = new albums("album2", "2000");
    var album3 = new albums("album3", "2001");
    var album4 = new albums("album4", "2002");
    var album5 = new albums("album5", "2003");
    albumlist.push(album1, album2, album3, album4, album5);
    showbutton.onclick = function() {
        for (var i = 0; i < albumlist.length; i++) {
            console.log(albumlist[i]);
        }
        document.getElementById("myalbums").innerHTML = albumlist.sort() + "<br/>";
}
document.getElementById("myalbums").innerHTML = albumlist.sort() + "<br/>";

看看这条线是做什么的。这需要一个数组,它是一个具有许多函数、键等的对象,并尝试在页面上绘制。

这是不可能的,因为javascript不知道如何将该数组转换为字符串。

为此,您必须首先创建所需的字符串,然后将其绘制在页面上。

您需要循环访问这些项目并生成一个字符串,例如:

var names = "";
for(var i = 0; i < albumlist.length; i++){
  names += albumlist[i].name + ' ';
}

然后在 HTML 上替换它:

document.getElementById("myalbums").innerHTML = names + "<br/>";