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

推薦する

アイデアをDockerに接続してワンクリックでデプロイする方法

1. docker設定ファイルを変更し、ポート2375を開きます。 [root@s162 docke...

DockerHubを自分で構築する方法

先ほど使用したDocker HubはDockerによって提供されています。独自のDockerを構築す...

MySQL の大文字と小文字の区別に関する注意

目次MySQLの大文字と小文字の区別はパラメータによって制御されますMySQLの大文字と小文字の区別...

Nginx は rtmp ライブ サーバーの実装コードを構築します

1. nginxソースディレクトリに新しいrtmpディレクトリを作成し、git clone http...

Vue 監視属性のグラフィック例の詳細な説明

目次リスナープロパティとは何ですか?リスニングプロパティと計算プロパティの違いは何ですか?監視プロパ...

Mysql ALTER TABLE はフィールドを追加するときにテーブルをロックしますか?

目次MySQL 5.6以前MySQL 5.6以降要約する知らせMySQL 5.6以前更新手順元のテー...

レスポンシブ Web デザイン手法を実装し、ウォーターフォール モデルに別れを告げる 5 つのステップ (グラフィック チュートリアル)

次の Web デザイン プロジェクトはレスポンシブにする必要があると上司をようやく納得させることがで...

フロントエンドの HTML 知識ポイントのまとめ (推奨)

1. HTMLの概要htyper テキスト マークアップ言語 ハイパーテキスト マークアップ言語ハ...

Elasticsearch を使用する際の一般的な問題の解決策

1. redis で使用すると Netty の起動競合が発生するため、***Application ...

MySQL データベースのマスター スレーブ分離のサンプル コード

導入MySQL データベースの読み取りと書き込みの分離を設定すると、データベースに対する書き込み操作...

HTML に FLASH へのリンクを追加し、すべての主要ブラウザと互換性を持たせる方法

まずコードを見てみましょうコードをコピーコードは次のとおりです。 <div style=&qu...

入力のsize属性とmaxlength属性の違い

最近、プロジェクトで input size 属性と maxlength 属性を使用しました。以前は、...

MySQL データベースを最適化する 8 つの方法の詳細な説明 (必読の定番)

導入:インターネット上にはデータベースの最適化に関する情報や方法が数多くありますが、その多くは品質に...

XHTMLタグは適切に使用する必要があります

<br />123WORDPRESS.COM の以前のチュートリアルでは、Web ページ...

Linuxカーネルのアクセス制御セキュリティを強化する方法

背景以前、当社のプロジェクト チームは、Windows、Linux、macOS の 3 つの主要なオ...