2013-11-02 66 views
0

我无法为下面的代码的第二个功能(此)设置参数。而不是使用此代码:为什么此Google Apps脚本的参数无法按预期工作?

if (text2[text2.length - 2] === word) { 
    date = text2[text2.length - 1]; 

我想用这个其他:

if (text2[text2.length - position_word] === word){ 
    date = text2[text2.length - position_date]; 

这样我就可以在不同的上下文中调用这个函数。 但是,当我为此功能添加两个更多参数时,如function findDate (text, word, position_word, position_date),它不起作用。而且我不明白出了什么问题(日志消息看起来没问题)。你能够看到什么是错的?什么是我在这里失踪的JS函数属性?

function setColumnIfromG() { 
    var s = SpreadsheetApp.getActiveSheet(); 
    var input = s.getRange(2, 7, s.getLastRow(), 1).getValues(); 
    var output = []; 
    for (var i = 0; i < input.length; i++) { 
     output.push([ findDate(input[i][0], 'common term') ]); 
    // output.push([ findDate(input[i][0], 'common term', -2, -1) ]); 
     s.getRange(2, 9, output.length, 1).setValues(output); 
    } 
} 

function findDate (text, word){ 
//function findDate (text, word, position_word, position_date){ 
    Logger.log('text = '+ text); 
    var text1 = text.split(".Date"); 
    Logger.log("text1 = "+ text1); 
    var date = 'no date informed'; 
    for (var i=0; i<text1.length; i++) { 
    var text2 = text1[i].split(" "); 
    Logger.log("text2 = " + text2); 
    Logger.log("text2[text2.length - 2] = " + text2[text2.length - 2]); 
    Logger.log("text2[text2.length - 1] = " + text2[text2.length - 1]); 

// Logger.log("text2.length = " + text2[text2.length]); 
// Logger.log("position_word = " + position_word); 
// Logger.log("position_date = " + position_date); 

    if (text2[text2.length - 2] === word){ 
     date = text2[text2.length - 1]; 
// if (text2[text2.length - position_word] === word) { 
//  date = text2[text2.length - position_date]; 
    } 
     else { 
     date = 'no date informed'; 
     } 
    } 
    return date; 
} 

PS - 我知道, “位置数据” 不为-1,但text2.length - 1。所以,“排名日期”实际上是text2.length - position_date而不是position_date。我把这个名字只记住了这个-1与之相关的东西。

回答

1

在你的两个版本PARAM你的代码

date = text2[text2.length - 1]; 

在这四年PARAM版本,您有代码

date = text2[text2.length - position_date]; 

但你传递-1到功能的价值新position_date帕拉姆

我会坐在这里等着看着你,直到一分钱下降8-)

+0

嗨,@Drew,我知道“位置日期”不是“-1”,而是“[text2.length - 1]”。所以,“排名日期”确实是'[text2.length - position_date]'而不是'position_date'。我把这个名字只记得这个'-1'与什么有关。但是,无论如何,当'position_date'为'-1'时,带有4个参数的函数不起作用。如果这个硬币不是这个,请帮我把它放下! =) – craftApprentice

+0

你好,队友 - 抱歉,不能指出。如果你希望'text2 [text2.length - position_date]'和'text2 [text2.length - 1]'相同,那么你应该通过'position_date'传入1。你传递-1作为'position_date',所以你的'text2 [text2.length - position_date]'和'text2 [text2.length + 1]'相同,这会给你带来各种各样的问题。我希望这有帮助。 – Drew

+0

我现在很尴尬。 =)谢谢! – craftApprentice

相关问题