JavaScript の差異を利用して比較ツールを実装する

JavaScript の差異を利用して比較ツールを実装する

序文

仕事では、毎週従業員が提出した資料を数える必要がありますが、それを一つずつコピーして貼り付けるのは面倒なので、誰が資料を提出していないかを見つけるのに役立つ小さなツールを作成する必要があります。

まずはページを修正しましょう

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
  <メタ文字セット="UTF-8">
  <meta http-equiv="X-UA-compatible" content="IE=edge">
  <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
  <title>ドキュメント</title>
  <スタイル>
    テキストエリア {
      /* 境界: なし; */
      幅: 49%;
      高さ: 400px;

      /* フォントサイズ: 17pt; */

    }
    #ボタン{
      幅: 100%;
      高さ: 50px;
      位置: 相対的;
      上: 0px;
      /* 位置: 絶対; */
    }

    #p2 {
      左マージン: 940px;
      上マージン: -38px;
    }
  </スタイル>
</head>
<本文>
  <button id="btn" class="ambi-light-button">比較</button>
  <textarea id="txt" type="text" placeholder="送信する必要があります"></textarea>
  <textarea id="txt2" type="text" placeholder="送信済み"></textarea>
  <時間>
  <p>送信されていません</p>
  <p id="p2">欠席者リストが提出されました</p>
  <textarea id="txt3" type="text" placeholder="未送信"></textarea>
  <textarea id="txt4" type="text" placeholder="リストに載っていない人のリストを送信しました"></textarea>
</本文>
</html>

ちょっと醜いけど、自分で使う分には問題ない

JSコードを書き始める

<スクリプト
 //まず入力ボックスとボタンを取得します。let txt = document.querySelector('#txt')
  txt2 = document.querySelector('#txt2') とします。
  txt3 = document.querySelector('#txt3') とします。
  txt4 = document.querySelector('#txt4') とします。
  btn = document.querySelector('#btn') とします。
 //次に、差を求める配列を記述します。const getDifference = function (a, b) {
   //説明: 渡された 2 つの関数が配列の場合 if (a.constructor === Array && b.constructor === Array) {
      set1 = new Set(a);
      set2 = new Set(b);
      // Set を使用して重複を削除し、フィルターを使用して差異を検索します。 return Array.from(new Set([...set1].filter(x => !set2.has(x))));
    }
    null を返します。
  }
  // ボタンにクリックイベントを与えるだけです btn.onclick = function () {
    // 提出すべき人のリスト let Should_sub = txt.value.split('\n')
    //まだ提出していない人のリスト let already_sub = txt2.value.split('\n')
    l3 = getDifference(Should_sub, already_sub) とします。
    // リストに提出されていない人数 let l4 = getDifference(already_sub, Should_sub)
    //フィルタリングされた値はページ上の2つの入力ボックスにフィードバックされます txt3.value = l3.join('\n')
    txt4.値 = l4.join('\n')
  }
  </スクリプト>

要約する

JavaScript の差分を使用して比較ウィジェットを実装する方法についての記事はこれで終わりです。より関連性の高い JS 差分実装の比較ウィジェットのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • node.js を使用してフレームごとのアニメーションを生成する小さなツールを開発する方法
  • Node.js がチケット取得ガジェットと SMS 通知リマインダー機能を実装
  • Java9のJShellガジェットとコンパイラの2つの自動最適化方法
  • Node.jsはJSファイルマージツールを実装します
  • JavaScript は SQL を stringBuffer に変換する小さなツールを作成します
  • jsでブックマークレットを作成する理論
  • hta[javascript] で書かれた、スケジュールされた再起動またはシャットダウンのための小さなツール
  • 建国記念日が近づいています。JS を使用して、建国記念日風のアバターを生成する小さなツールを実装します。実装プロセスの詳細な説明

<<:  Docker で複数のアプリケーション サイトをプロキシするために Nginx を使用する方法

>>:  MySQL 5.7.23 解凍バージョンのインストールチュートリアル(画像とテキスト付き)

推薦する

mysql5.7 リモート アクセス設定

mysql5.7 でリモート アクセスを設定することは、ユーザーを作成して権限を付与するだけでアクセ...

React Fiber構造の作成手順

目次リアクトファイバーの作成1. 始める前に2. React.renderから始める3. 終了リアク...

純粋な HTML ページを送信し、パラメータを渡し、ID を確認する方法

プロジェクトにはアンケートが必要ですが、クライアントはアンケートのタイトルが純粋なHTMLタグでなけ...

Windows Server 2016 リモート デスクトップ サービスの構成とライセンスのアクティブ化 (2 ユーザー)

Server 2016 のリモート デスクトップ接続のデフォルト数は 2 ユーザーです。2 人以上...

vuex の補助関数 mapGetters の基本的な使い方の詳細な説明

mapGettersヘルパー関数mapGettersヘルパー関数は、ストア内のゲッターをローカルの計...

MySQLデータベースはMMM高可用性クラスタアーキテクチャを実装します

コンセプトMMM (Mysql のマスター マスター レプリケーション マネージャー) は、Perl...

ZabbixはLinuxシステムサービスのプロセスを監視

Zabbix は Linux システムのサービス ユニットを監視するためのルールを自動的に検出します...

MySQLワームレプリケーションの基本知識

ワームは、その名前が示すように、自ら複製し、その数は倍増、つまり指数関数的に増加します。 MySQL...

MySQL Shellの紹介とインストール

目次01 レプリ​​カセットアーキテクチャ02 MySQL Shellの紹介とインストール03 My...

Vue実装のカウンターケース

この記事では、カウンター表示を実現するためのVueの具体的なコードを例として紹介します。具体的な内容...

バッチモードでtopコマンドを実行する方法

top コマンドは、Linux システムのパフォーマンスを監視するために誰もが使用している最適なコマ...

js 正規表現の先読みと後読み、および非キャプチャグループ化

目次先読みと後読みをキャプチャグループと組み合わせる捕獲グループと非捕獲グループ前を向いて、後ろを振...

ハイパーリンクに関するいくつかの質問

<br />ポテトチップスパーティーのこのエピソードに参加して、何人かの友達に会えてとて...

ウェブサイト上で flv/MP4 やその他のビデオ ファイルを再生できない問題は、MIME タイプに関連しています。

ウェブサイトを作成している際に、flv や MP4 形式などのビデオ ファイルはローカルでは正常に再...