17 個の JavaScript ワンライナー

17 個の JavaScript ワンライナー

1. DOMとBOM関連

1. 要素にフォーカスがあるかどうかを確認する

const hasFocus = (ele) => ele === document.activeElement;


2. 要素の兄弟ノードをすべて取得する

const 兄弟 = (ele) => [].slice.call(ele.parentNode.children).filter((child) => child !== ele);

// または const siblings = (ele) => [...ele.parentNode.children].filter((child) => child !== ele);


3. 選択したテキストを取得する

const getSelectedText = () => window.getSelection().toString();


4. 前のページに戻る

履歴を戻す
// または history.go(-1);


5. すべてのクッキーを消去する

const clearCookies = () => document.cookie
  。スプリット(';')
  .forEach((c) =>(document.cookie = c.replace(/^ +/, '')
  .replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`)));


6. クッキーをオブジェクトに変換する

const クッキー = document.cookie
。スプリット(';')
.map((item) => item.split('='))
.reduce((acc, [k, v]) => (acc[k.trim().replace('"', '')] = v) && acc, {});

2. 配列関連

7. 2つの配列を比較する

// `a` と `b` は配列です const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
// または const isEqual = (a, b) => a.length === b.length && a.every((v, i) => v === b[i]);

// 例 isEqual([1, 2, 3], [1, 2, 3]); // true
isEqual([1, 2, 3], [1, '2', 3]); // 偽


8. オブジェクトの配列をオブジェクトに変換する

const toObject = (arr, key) => arr.reduce((a, b) => ({ ...a, [b[key]]: b }), {});
// または const toObject = (arr, key) => Object.fromEntries(arr.map((it) => [it[key], it]));

// 例 toObject([
  { id: '1'、名前: 'アルファ'、性別: '男性' },
  { id: '2'、名前: 'ブラボー'、性別: '男性' },
  { id: '3'、名前: 'チャーリー'、性別: '女性' }]、
'id');

/*
{
'1': { id: '1', 名前: 'アルファ', 性別: '男性' },
'2': { id: '2', 名前: 'ブラボー', 性別: '男性' },
'3': { id: '3'、名前: 'チャーリー'、性別: '女性' }
}
*/

9. オブジェクトの配列のプロパティによるカウント

const countBy = (arr, prop) => arr.reduce((prev, curr) => ((prev[curr[prop]] = ++prev[curr[prop]] || 1), prev), {});

// 例 countBy([
{ ブランチ: 'audi'、モデル: 'q8'、年: '2019' },
{ ブランチ: 'audi'、モデル: 'rs7'、年: '2020' },
{ ブランチ: 'フォード'、モデル: 'マスタング'、年: '2019' },
{ ブランチ: 'フォード'、モデル: 'エクスプローラー'、年: '2020' },
{ ブランチ: 'bmw'、モデル: 'x7'、年: '2020' },
]、
'支店');

// { 'アウディ': 2、 'フォード': 2、 'BMW': 1 }

10. 配列が空かどうか確認する

const isNotEmpty = (arr) => Array.isArray(arr) && Object.keys(arr).length > 0;

// 例 isNotEmpty([]); // false
isNotEmpty([1, 2, 3]); // 真

3. オブジェクト関連

11. 複数のオブジェクトが等しいかどうかを確認する

const isEqual = (...objects) => objects.every((obj) => JSON.stringify(obj) === JSON.stringify(objects[0]));

// 例 isEqual({ foo: 'bar' }, { foo: 'bar' }); // true
isEqual({ foo: 'bar' }, { bar: 'foo' }); // false


12. オブジェクトの配列から属性値を抽出する

const pluck = (objs, property) => objs.map((obj) => obj[property]);

// 例 pluck([
  { 名前: 'ジョン'、年齢: 20 },
  { 名前: 'スミス'、年齢: 25 }、
  { 名前: 'ピーター'、年齢: 30 },
]、
'名前');

// ['ジョン', 'スミス', 'ピーター']

13. オブジェクトのキーと値を反転する

const invert = (obj) => Object.keys(obj).reduce((res, k) => Object.assign(res, { [obj[k]]: k }), {});
// または const invert = (obj) => Object.fromEntries(Object.entries(obj).map(([k, v]) => [v, k]));

// 例 invert({ a: '1', b: '2', c: '3' }); // { 1: 'a', 2: 'b', 3: 'c' }

14. オブジェクトから空および未定義のプロパティをすべて削除する

const 削除NullUndefined = (obj) =>
  オブジェクト.entries(obj).reduce(
    (a, [k, v]) => (v == null ? a : ((a[k] = v), a)),
    {},
  );

// または const removeNullUndefined = (obj) =>
  オブジェクト.エントリ(obj)
    .filter(([_, v]) => v != null)
    .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {});

// または const removeNullUndefined = (obj) =>
  Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null));

// 例removeNullUndefined({
  foo: null、
  バー: 未定義、
  ファズ: 42
});
// { ファズ: 42 }

15. オブジェクトをプロパティで並べ替える

定数ソート = (obj) =>
  オブジェクト.keys(obj)
    。選別()
    .reduce((p, c) => ((p[c] = obj[c]), p), {});

// 例 const colors = {
  白: '#ffffff',
  黒: '#000000',
  赤: '#ff0000',
  緑: '#008000',
  青: '#0000ff',
};
並べ替え(色);
/*
{
  黒: '#000000',
  青: '#0000ff',
  緑: '#008000',
  赤: '#ff0000',
  白: '#ffffff',
}
*/

16. オブジェクトが Promise かどうかを確認する

定数isPromise = (obj) =>
  !!オブジェクト &&
  (typeof obj === 'オブジェクト' || typeof obj === '関数') &&
  typeof obj.then === 'function';


17. オブジェクトが配列かどうかを確認する

Array.isArray() メソッドは、次のコードで obj をオーバーライドします。

JavaScript ワンラインプログラムに関するこの記事はこれで終わりです。JavaScript ワンラインプログラムに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 18 個のキラー JavaScript ワンライナー
  • 開発でよく使われる JavaScript の 1 行コード 25 個 (要約)
  • 1行のJSでモバイルマネー形式の入力ルールを実装

<<:  無効にするとフォームの入力が送信できない問題の解決方法

>>:  HTML の入力の readonly 属性と disabled 属性の違いについて簡単に説明します。

推薦する

MySQL 8.0 ディクショナリテーブル拡張の詳細な説明

MySQL のデータ ディクショナリは、データベースの重要なコンポーネントの 1 つです。INFOR...

ナビゲーションバーコンポーネントをVueでカプセル化する

はじめに:ナビゲーション バーなどのコンポーネント ベースのアイデアを使用して機能モジュールを完全に...

CentOS8 jdk8 / java8 のインストールチュートリアル(推奨)

序文最初はCentOS8でwgetを使ってダウンロードし、解凍して環境変数を設定するつもりだったので...

NginxにおけるRewriteのリダイレクト設定と実践の詳しい解説

1: アドレス書き換えとア​​ドレス転送の意味を理解する。アドレス書き換えとア​​ドレス転送は異なる...

チェックボックスとラジオボタンの配置を実装する方法

ブラウザによって動作が異なるだけでなく、フォントやテキスト サイズによっても動作が異なります。フォー...

IdeaはリモートDockerをデプロイし、ファイルを構成する

1. LinuxサーバーのDocker構成ファイルを変更する vim /usr/lib/system...

CentOS はローカル yum ソースを使用して LAMP 環境を構築するグラフィック チュートリアル

この記事では、ローカル yum ソースを使用して CentOS 上に LAMP 環境を構築する方法に...

HTML はテキストの外側に省略記号を表示します...テキストオーバーフローによって実装されます

div または span に同時に CSS を適用する必要があります。コードをコピーコードは次のとお...

JSはjQueryのappend関数を実装します

目次コードを見せてください効果をテストする効果追伸別のアプローチコードを見せてください HTMLEl...

データベースの削除から逃走までの MySQL の徹底分析_上級編 (I) - データ整合性

1. データ整合性の概要1. データ整合性の概要データの冗長性とは、データベース内に重複したデータが...

Vueカスタム指示により、ポップアップウィンドウのドラッグ4辺ストレッチと対角ストレッチ効果を実現

導入同社の最近の Vue フロントエンド プロジェクトの要件: ポップアップ ウィンドウのドラッグ、...

JS ES の新機能、変数分離割り当て

目次1. 配列の分離割り当て1.1 配列分離割り当てとは何ですか? 1.2 配列分離割り当てに失敗し...

Nginxのアクセスボリューム制御の詳細な説明

目的リクエスト アクセス ボリュームを制御するための Nginx ngx_http_limit_co...

Vueシャトルボックスは上下の動きを実現します

この記事の例では、vueシャトルボックスを上下に動かすための具体的なコードを参考までに共有しています...