javascript推送在对象内部的数组中不起作用

javascript推送在对象内部的数组中不起作用,javascript,arrays,object,google-apps-script,prototype,Javascript,Arrays,Object,Google Apps Script,Prototype,正如您在代码中看到的,我尝试在对象内部动态创建数组,调试时没有问题,但当我尝试在数组中使用push方法时,它会抛出一个错误。顺便说一下,这是在谷歌应用程序脚本 在对象[object]:TypeError中找不到推送函数。(第32行,文件 var LoopQuestGuildAchievementReward = function (spread_sheet, master_name, is_update) { initializeBase(this, MasterBase, [spread_

正如您在代码中看到的,我尝试在对象内部动态创建数组,调试时没有问题,但当我尝试在数组中使用push方法时,它会抛出一个错误。顺便说一下,这是在谷歌应用程序脚本

在对象[object]:TypeError中找不到推送函数。(第32行,文件

var LoopQuestGuildAchievementReward = function (spread_sheet, master_name, is_update) {
  initializeBase(this, MasterBase, [spread_sheet, master_name, is_update]);

  this.guild_achievement_columns = new Object();
  this.create_guild_achievement_columns = function () {
    var guild_achievement_coloumn_names = ['ids', 'event_ids', 'range_starts', 'range_ends', 'incentive_ids'];

    for (var i = 0; i < guild_achievement_coloumn_names.length; i++) {
      if (!this.guild_achievement_columns[guild_achievement_coloumn_names[i]]) {
        this.guild_achievement_columns[guild_achievement_coloumn_names[i]] = {};
      };
    };
  };
};

LoopQuestGuildAchievementReward.prototype.setMaster = function(option) {
  if (!option || !option.summary_values || !option.batch_reward_values) {
    throw "Argument exception.";
  };

  var event_id = option.summary_values[8][0];
  var incentive_values = option.batch_reward_values;
  var incentive_master_id = Commons.getIncentiveId(1, event_id, 5);
  var data_row_number = searchRowNumberWrittenLavelInColumn_(incentive_values, 1, "reach num") + 1;
  var guild_achievement_last_id = Commons.getLatestId("loop_quest_guild_achievement_reward", "ja") + 1;

  this.create_guild_achievement_columns();

  while (data_row_number < incentive_values.length && incentive_values[data_row_number][1] != "") {
    var reach_number = incentive_values[data_row_number][1];
    Logger.log(this.guild_achievement_columns.ids);
    this.guild_achievement_columns.ids.push(guild_achievement_last_id); // <- this where the error message points (line no. 32)
    // this.guild_achievement_columns.event_ids.push(event_id);
    // this.guild_achievement_columns.range_starts.push(reach_number);
    // this.guild_achievement_columns.range_ends.push(reach_number - 1);
    // this.guild_achievement_columns.incentive_ids.push(incentive_master_id);

    guild_achievement_last_id++;
    incentive_master_id++;
    data_row_number++;
  }

  Logger.log(this.guild_achievement_columns);
};
var loopquestguildacheevementreward=函数(数据表、主控名称、is更新){
初始化数据库(这是MasterBase,[数据表,master名称,是更新];
this.guild_acquisition_columns=新对象();
this.create\u guild\u acquisition\u columns=函数(){
var guild_Ac绩_Column_names=['ID'、'event_ID'、'range_Start'、'range_ends'、'激励_ID'];
对于(变量i=0;i这个.guild_acquisition_columns.ids.push(guild_acquisition_last_id);//在询问我的上级后,他提到花括号表示对象,方括号表示数组

对象:this.guild\u acgression\u columns[guild\u acgression\u column\u names[i]]={}


数组:this.guild_actification_columns[i]]=[];

你的“ID”是一个对象而不是数组。对象没有push方法。在for循环中,你为“ID”创建对象。请看这一行。guild_actification_columns[i]={}啊是的,谢谢它应该是[]而不是{}