やりたいこと
- input1とinput2のキーワードを比較する
- input1とinput2の両方に存在するものをsameに出力する
- input2にしか存在しないものをnew_wordに出力する
デモ
コード.gs
function doGet() { return HtmlService.createHtmlOutputFromFile("index"); } |
意訳この機能がやること 指定したHTMLファイルを表示する |
index.html
<!DOCTYPE html> <html> <head> <style> textarea { width: 240px; height: 360px; } </style> </head> <body> <textarea id="ta1" placeholder="input1"></textarea> <textarea id="ta2" placeholder="input2"></textarea> <textarea id="same" placeholder="same" disabled></textarea> <textarea id="new_word" placeholder="new_word" disabled></textarea> <script> function get_elem(id){ return document.getElementById(id); } var ta1 = get_elem("ta1"); var ta2 = get_elem("ta2"); var same = get_elem("same"); var new_word = get_elem("new_word"); ta1.onkeyup = ta_keyup; ta2.onkeyup = ta_keyup; /************************************ ta1とta2にキーワード一覧コピペすると sameには共通のキーワードが出力される new_wordにはta2にあってta1にないキーワードが出力される ************************************/ function ta_keyup(){ var ta_values = ta1.value.split("\n"); var ta2_values = ta2.value.split("\n"); var filtered = filter_array(ta_values, ta2_values) same.value = same_words.join("\n"); new_word.value = new_words.join("\n"); } /************************************ same_wordsとnew_wordsを抽出する ************************************/ var same_words; var new_words; var value; function filter_array(array, array2) { new_words = []; same_words = []; for(var i = 0; i < array2.length; i++){//obj2の要素数だけ繰り返す value = array2[i];//obj2のenを一つずつ取得 var filtered = array.filter(judge); var result = get_result(filtered); same_or_new(result, i, array2) } } function judge(obj_item) { var result = value === obj_item; return result; } function get_result(filtered) { var result = []; for (var i = 0; i < filtered.length; i++) { result.push(filtered[i]); } return result; } function same_or_new(result, i, array2){ if(result == ""){ new_words.push(array2[i]); }else if(result != ""){ same_words.push(array2[i]); } } </script> </body> </html> |