2016-09-03 18 views
0

私は配列を持っています。その内容は、Googleフォームのチェックボックスの質問に由来する名前のリストのサブセットです。名前が配列に含まれている人に電子メールを送る必要があります。ハードコードされたリスト(マルチディム配列ですか?私はどのように検索/比較/何を実行するかを理解することはできません。どうやら私は、以下のコードのように、オブジェクトリテラルを使用することを想定しています:配列の内容と入力済みのデータの一致

var formNames = ["Name One", "Name Three"]; // one possibility for example 

var objectMatchingNamesToEmails{ 
    "Name One":"[email protected]", 
    "Name Two":"[email protected]", 
    "Name Three":"[email protected]", 
}; 
+0

あなたの質問を編集して、名前の配列の例と、その名前を持つ配列に使用している変数名の例を追加してください。おそらく 'for'ループを使用して配列をループし、電子メールを検索し、同時に検索された電子メールの新しい配列を作成することができます。 –

答えて

0

あなたは配列をループできます。後に続いて

var objectMatchingNamesToEmails; 

objectMatchingNamesToEmails = { 
    "NameOne":"[email protected]", 
    "NameTwo":"[email protected]", 
    "NameThree":"[email protected]", 
}; 

var arrayOfEmails,arrayOfNames,L,thisEmail,thisName; 

arrayOfNames = ["NameOne","NameTwo"]; 

arrayOfEmails = []; 
L = arrayOfNames.length;//The number of names in the array 

for (var i = 0;i<L;i++) { 
    thisName = arrayOfNames[i]; 
    thisEmail = objectMatchingNamesToEmails[thisName]; 
    arrayOfEmails.push(thisEmail); 
}; 

は、オブジェクトリテラルを作成します。あなたは名前を取得し、コードは正しいメールを検索することができます:

var userName,userEmail; 

userName = code here to get user name; 

userEmail = objectMatchingNamesToEmails[userName]; 

MailApp.sendEmail(userEmail,subject,body); 
+0

ありがとう!したがって、オブジェクトリテラルは、名前と電子メールのペアのリスト全体を保持できます。私はこれが何とか私の目的のためにマルチディムアレイより優れていると思いますか?私はまだルックアップのセクションを理解していない。上記の私の編集した質問のコードを見てください。 – dmfrench

+0

配列から値を取得するには、インデックス番号を知っていなければなりません。常に同じ順序のデータの場合、常に同じ順序でなければならない行のようにうまく動作します。オブジェクトから値を取得するには、キー名を使用します。キー名が常に同じでない場合は、カッコ表記を使用します。 'var lookedUpValue = objectName [keyName]'カッコ表記では、キー名は値が変化する変数になります。 –

+0

ありがとうございます。ちょうど完成した編集、あなたがとても親切であれば見てください。 – dmfrench

関連する問題