2017-09-23 24 views
0

私が何をしても、これは "Logger.log(medItemResponse);"の未定義オブジェクトを返します。Google Apps Script:グリッドアイテムレスポンスを取得すると返り値が返されません

function updateMedicationNumbers() { 
    var lastFormResponse = getLastForm(); 
    getMedItemResponse(lastFormResponse); 
} 

function getLastForm(){ 
    var form = FormApp.getActiveForm(); 
    var formResponseArray = form.getResponses(); 
    var lastFormResponse = formResponseArray[formResponseArray.length-1]; 
    Logger.log(lastFormResponse); 
    return lastFormResponse; 

} 

function getMedItemResponse(lastFormResponse){ 
    var responseItems = lastFormResponse.getItemResponses(); 
    Logger.log(responseItems); 
    for (var i = 0; i < responseItems.length; i++){ 
     var responseItem = responseItems[i].getItem(); 
     if(responseItem.getTitle() == "Individual Meds"){ 
     var medItemResponse = responseItems[i].getResponse(); 
     } 
    } 
    Logger.log(medItemResponse); 
    } 

ここには、.getResponse()のドキュメントがあります。

回答者が提出した回答を取得します。ほとんどのタイプの質問項目では、これは文字列を返します。 CheckboxItemの質問では、レスポンダの選択肢を含むString []配列を返します。配列内の文字列の順序は異なる場合があります。 GridItemの質問では、インデックスnの答えがグリッドの行n + 1の質問に対応するString []配列を返します。回答者がグリッド内の質問に回答しなかった場合、その回答は ''として返されます。 CheckboxGridItemの質問では、行インデックスnの回答がチェックボックスグリッドの行n + 1の質問に対応するString [] []配列を返します。回答者がグリッド内の質問に回答しなかった場合、その回答は ''として返されます。

戻り

オブジェクト - 文字列またはString []またはString [] []を質問項目

+0

"個々のMeds"){var medItemResponse = responseItems [i] .getResponse(); break; } 'Individual Meds'という名前のタイトルが1つしかない場合、一致が見つかるとループを続ける理由はありません。 truthyテストの結果を示す 'Logger.log()'ステートメントをコードに入れてください。 Logger.log(responseItem.getItem()。getTitle()== "Individual Meds") 'ログに真の1つのプリントが表示されるはずです。 –

答えて

0

への回答の私は別の形でこれを試してみました、動作しているようですが、私はよく分かりませんそれがあなたのために働くならば。 `場合(responseItem.getTitle()==:あなたはtruthy` responseItem.getTitle()== "個別クスリ" `それはあるべきために実行ブロックの内部ループで` break`を持っている必要があり

function getMedItemResponse(lastFormResponse){ 
    var responseItems = lastFormResponse.getItemResponses(); 
    Logger.log(responseItems); 
    for (var i = 0; i < responseItems.length; i++){ 
     var responseItem = responseItems[i]; 
     if(responseItem.getItem().getTitle() == "Individual Meds"){ 
     var medItemResponse = responseItems[i].getResponse(); 
     } 
    } 
    Logger.log(medItemResponse); 
    } 
関連する問題