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 属性の違いについて簡単に説明します。

推薦する

シンプルな時計を実装するJavaScript

この記事では、JavaScriptでシンプルな時計を実装するための具体的なコードを参考までに紹介しま...

MySQL の 10 進数データ型の小数点埋め込み問題の詳細な説明

序文開発プロセスでは、10 進データ型がよく使用されます。 MySQL では、小数点は正確なデータ型...

Vue3 ミックスインの使い方

目次1. mixin の使い方は? 2. ミックスイン使用時の注意2.1. ミックスイン オブジェク...

プロジェクトのフロントエンドとバックエンドでの Echart チャートの使用に関する詳細な説明

目次序文1. プロジェクトアーキテクチャ2. Echart公式サイトにアクセスして自己分析を学ぶ2....

MySQL マルチバージョン同時実行制御 MVCC の実装

目次MVCCとはMVCC 実装MVCC はファントム リードを解決しますか? MVCCとはMVCC ...

Docker を使用した ElasticSearch:7.8.0 クラスターのインストールに関する詳細なチュートリアル

ElasticSearch クラスターは、クラスターを構築するための動態請求的方式と靜態配置文件をサ...

VirtualBox でのホストオンリー + NAT モードのネットワーク構成

VirtualBoxのHost Only+NATモードのネットワーク構成は参考用です。具体的な内容は...

よくある CSS エラーと解決策

コードをコピーコードは次のとおりです。 IE6 と FF の違い: background:orang...

Windows での MySQL 8.X インストール チュートリアル

以前は MySQL 5.7 を使用していましたが、MySQL にいくつか新しい機能が追加されたため、...

node.jsのコアモジュールとは

目次グローバルオブジェクトグローバルオブジェクトとグローバル変数プロセスコンソール一般的なツールユー...

HTML ページジャンプとパラメータ転送の問題

HTMLページジャンプ: window.open(url, "", "...

IE6/IE7/IE8/IE9/FF 向け CSS ハック (概要)

IE8.0の正式版をインストールしたので、基本的なCSS HACKをいくつかまとめてみました。We...

Docker ベースの Etcd 分散デプロイメントの方法と手順

1. 環境整備1.1 基本環境NTP設定: 省略 #時間の一貫性を確保するためにNTPサービスを設定...

Nginx イントラネット スタンドアロン リバース プロキシの実装

目次1 Nginxのインストール2 Nginxの設定3 ホストファイルを変更する4 テストNginx...

Rabbitmq heartbea ハートビート検出メカニズムの原理の分析

序文RabbitMQ を使用する場合、一定期間クライアントと RabbitMQ サーバーの間でトラフ...