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

JavaScript中如何将字符串推入其他函数返回的数组中

问题原因
  • 你当前的listPeople方法每次调用都会在内部重新声明一个空数组,执行完就返回这个全新的空数组,没有持久化存储之前添加的数据的能力,所以每次调用add操作的都是不同的空数组,自然不会保留之前的内容。
  • JavaScript 中数组的push()方法的返回值是操作完成后数组的最新长度,不是修改后的数组本身,所以你调用add时才会返回1、2这类递增值。
实现方案

你需要把存储人名的数组提取为对象的自身属性,持久化存储数据,再调整add方法的返回逻辑即可,参考代码如下:

// 你的业务对象示例
const peopleTask = {
  // 声明内部属性存储数据,下划线开头是约定俗成的内部属性标识,避免外部直接修改
  _peopleList: [],
  listPeople: function () {
    // 直接返回存储的数组
    return this._peopleList;
  },
  add: function (name, task) {
    // 把name推入持久化存储的数组
    this.listPeople().push(name);
    // 若需要返回更新后的数组,直接返回即可
    return this.listPeople();

    // 如果你需要用到传入的task参数,也可以调整存储结构,示例:
    // this.listPeople().push({ name: name, task: task })
  }
}
调用测试
peopleTask.add('zeke') // 返回 ["zeke"]
peopleTask.add('john') // 返回 ["zeke", "john"]
peopleTask.listPeople() // 同样可获取到完整的数组 ["zeke", "john"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:45:03