You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript数组操作报错排查及make_album函数实现需求

一、实现音乐专辑对象生成函数

代码实现

function make_album(artistName, albumTitle, trackCount) {
    const album = {
        artist: artistName,
        title: albumTitle
    };
    // 传入曲目数时添加对应属性
    if (trackCount !== undefined) {
        album.tracks = trackCount;
    }
    return album;
}

// 创建三个专辑对象并验证
const album1 = make_album('周杰伦', '范特西');
const album2 = make_album('泰勒·斯威夫特', '1989');
const album3 = make_album('陈奕迅', 'U87', 11); // 带曲目数的调用

console.log(album1);
console.log(album2);
console.log(album3);

说明

  • 函数接收必填的艺术家名称和专辑标题,返回包含这两项信息的对象。
  • 可选参数trackCount用于传入曲目数,仅当参数存在时,才会给专辑对象添加tracks属性。
  • 调用示例覆盖了无曲目数和带曲目数的场景,打印结果可直接验证信息存储正确性。
二、解决数组操作报错:Uncaught TypeError: great_magicians.append is not a function

问题根源

JavaScript数组没有append()方法,该方法属于DOM元素(如Node.append())。数组添加元素需使用数组专属方法。

错误示例(假设)

const great_magicians = ['David Copperfield', 'Harry Houdini'];
great_magicians.append('Penn & Teller'); // 数组无此方法,触发报错

修正方案

方案1:用push()修改原数组

const great_magicians = ['David Copperfield', 'Harry Houdini'];
great_magicians.push('Penn & Teller');
console.log(great_magicians); // 输出: ["David Copperfield", "Harry Houdini", "Penn & Teller"]

方案2:用扩展运算符生成新数组(不修改原数组)

const great_magicians = ['David Copperfield', 'Harry Houdini'];
const newMagicians = [...great_magicians, 'Penn & Teller'];
console.log(newMagicians);

方案3:用concat()生成新数组

const great_magicians = ['David Copperfield', 'Harry Houdini'];
const newMagicians = great_magicians.concat('Penn & Teller');
console.log(newMagicians);

总结

数组添加元素时,需使用JavaScript数组提供的方法,避免混淆DOM元素的API。根据需求选择修改原数组的push(),或生成新数组的扩展运算符/concat()。

内容的提问来源于stack exchange,提问作者Psyco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:45:46