リストとテキストを比較
2つのリストを行ごとに比較:両方にある行、片方だけの行、どちらかにある行を見つけたり、マーク付きの行差分を並べて表示したりできます。
コード例
自分のプロジェクトにコピーして使えます。どの例も言語の標準ライブラリだけを使うので、インストールするものはありません。
const a = ['a', 'b', 'c', 'b']
const b = ['b', 'd']
const exclude = new Set(b)
console.log([...new Set(a)].filter((line) => !exclude.has(line)).join('\n'))できること
2つのリストを行ごとに比較します。集合として:すべての行を1回ずつ(和集合)、両方のリストにある行(積集合)、A のみまたは B のみの行、ちょうど片方にある行。テキストとして:各行を変更なし・削除・追加として示す行差分を、統合表示または左右並べで表示します。
使い方
- リスト A と リスト B に1行1項目で入力または貼り付けます。テキストファイルはリスト A にドロップできます。
- 演算を選びます。「その他」で 大文字小文字を区別 をオフにすると
Appleとappleが等しく扱われ、行の前後の空白を無視 をオンにすると末尾のスペースで行が別扱いになりません。結果は入力したままの行を保ちます。 - 結果をコピーまたはダウンロードします。空行を削除 は先に両方のリストの空行を取り除きます。
例
リスト A が a, b, c, d、リスト B が b, c の場合:
A − B は a と d、A ∩ B は b と c になり、行差分 は a と d を A から削除されたものとして示します。
知っておくと便利なこと
- 集合演算は行の順序を無視し、各行を最初に現れた順に1回ずつ返します。
- 行差分はリストを上から下へ比べるので、移動した行は一方で削除、他方で追加として表示されます。
- 左右並べ表示では、変更された行は同じ行を共有し、相手のない行は片側が空白になります。
- 無視する設定でのみ異なる行は等しいとみなされ、リスト B の形で表示されます。
演算の意味は?
A ∪ B はどちらかのリストにあるすべての行を1回ずつ並べます。A ∩ B は両方にある行を残します。A − B は A のみ、B − A は B のみの行を残します。最後の演算は、ちょうど片方のリストにだけある行を残します。どの結果も重複がなく、最初に現れた順序を保ちます。
よくある質問
集合演算と行差分の違いは?
集合演算はリストをコレクションとして比べるので、行の順序は関係ありません。行差分は上から下へのテキストとして比べ、コードレビューのように各行を変更なし・削除・追加として示します。
大文字小文字や空白を無視できますか?
はい。「その他」で大文字小文字の区別をオフにし、行の前後の空白の無視をオンにします。その違いだけの行は等しいとみなされ、結果には入力したままの形で残ります。
このツールはリストをどこかに送信しますか?
いいえ。すべてブラウザ内で行われます。入力した内容が当社のサーバーに送信されることはありません。