javascript推送在对象内部的数组中不起作用
正如您在代码中看到的,我尝试在对象内部动态创建数组,调试时没有问题,但当我尝试在数组中使用push方法时,它会抛出一个错误。顺便说一下,这是在谷歌应用程序脚本 在对象[object]:TypeError中找不到推送函数。(第32行,文件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_
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]={}啊是的,谢谢它应该是[]而不是{}