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 解凍バージョンのインストールチュートリアル(画像とテキスト付き)

推薦する

line-height=height要素の高さだがテキストが垂直方向に中央揃えされない問題を解決する

まず、行の高さが要素の高さと等しい場合にテキストが垂直方向に中央揃えにならない理由を説明します。実際...

角度に基づくツリー型セカンダリテーブルを実現する

まず効果を見てみましょう: コード: 1.html <div class="user...

データバインディングとリストデータの表示にはVue3を使用する

目次1. Vue2との比較1. Vue3の新機能2. Vue2とVue3の応答原理の比較3. 配列の...

HTML リンク アンカー タグと SEO におけるその役割の概要

<a> タグは主に、ハイパーリンクまたはアンカー リンクとも呼ばれるリンクとブックマーク...

VMware 仮想マシンで Linux の IP アドレスを表示する方法

1. まず、コンピュータのデスクトップにある VMware アイコンをダブルクリックしてソフトウェア...

より人気がありクリエイティブなダーク背景のウェブデザインの例

暗い背景スタイルのページ デザインは非常に人気があり、シックでエレガント、そして非常にクリエイティブ...

MySQL サーバーの接続、切断、および cmd 操作

mysql コマンドを使用して MySQL サーバーに接続します。 MySQL サーバーが起動したら...

MySQL 8.0.16 圧縮版のダウンロードと Win10 システムへのインストール チュートリアル

公式サイトからダウンロード: https://www.mysql.com MySQLの公式サイトにア...

ウェブフロントエンドウェブ開発の一般的なプロセスの簡単な紹介

フロントエンド開発を行っている初心者の学生を多く見かけますが、彼らの効率は比較的遅いです。常にコード...

Nginx+Apache の動的および静的分離の導入の詳細な例

Nginx の動的および静的分離の概要Nginx は静的処理能力が強力ですが、動的処理能力が不十分で...

React onClickにパラメータを渡す問題について話しましょう

背景下のようなリストでは、削除ボタンをクリックすると削除操作を実行する必要があります。 リスト生成:...

CSS オーバーフローラップの新しいプロパティ値をどこでも使用

1.まず、overflow-wrap属性を理解する CSS のoverflow-wrapプロパティは...

IDEAでVUEプロジェクトをデバッグするための詳細な手順

js コードをデバッグするには、コード内にデバッガーを記述するか、Chrome で毎回ブレークポイン...

最小限の展開で CentOS8 に OpenStack Ussuri をインストールする方法の詳細なチュートリアル

CentOS8 に最小限のデプロイメントで OpenStack Ussuri をインストールするため...

MySQLデータの重複チェックと重複排除の実装ステートメント

テーブル user があり、フィールドは id、nick_name、password、email、p...