変数を宣言し、次のステートメントでプラスの等号(+ =)演算子を介して他の変数とテキストを連結して値を割り当てると、オブジェクトに格納されているすべてのデータを受け取ります。ただし、「undefined」が先行しています。変数の最初の未定義状態を取り除くために、私は連結の前にそれを定義しましたが、これは私のプラスの等価演算子を破り、結果を切り捨てます。+ =連結の演算では、定義された方法に基づいて結果が異なるのはなぜですか?
for (var j = 0; j < itemResponses.length; j++) {
var itemResponse = itemResponses[j];
var responseTitle = itemResponse.getItem().getTitle();
var responseAnswer = itemResponse.getResponse();
var responseComplete; // Inserts undefined at start of log
// var responseComplete = ""; // Breaks += operation
// var responseComplete = new String(); // Breaks += operation
responseComplete += (responseTitle + ": " + responseAnswer + "; ");
}
Logger.log(stringData);
Log for var responseComplete;
[16-09-15 15:38:02:256 PDT] undefinedName:名前;
会員番号:0000;
日付:2016-09-09 09:00;
時間:00:00:09;
// ****ログの先頭に 'undefined'を挿入します
var responseComplete = new String();
[16-09-15 15:39:02:610 PDT]所要時間:00:00:09;
// ****ブレーク+ =演算子。
ログはvar responseComplete = "";
[16-09-15 15:39:42:010 PDT]継続時間:00:00:09;
// **** + =演算子をブレークします。
私の言語の誤解に対する洞察は非常に高く評価されています。
(このプロジェクトは、Google Appsのスクリプトエディタで書かれて実行される)
!時には(時には時代の)論理が私を邪魔します。ありがとう! –