1. 重複排除前後のデータの比較// 元のデータは次のようになります // 重複排除後のデータは次のようになります [{ [{ "商品ID": "1", "商品ID": "1", 「クォータ」: 12、「クォータ」: 12、 "SKUID": "1" }, }, { { "商品ID": "2", "商品ID": "2", 「クォータ」: 12、「クォータ」: 12、 "SKUID": "2" }, }] { "商品ID": "1", 「クォータ」: 12, "SKUID": "1" }] 2. 使い方
結論: filter と Reduce の時間差はそれほど大きくありません。filter の方がわずかに高速ですが、filter 構文はより簡潔です。 1. フィルターとマップを使用するコードは簡潔で使いやすいです。4行のコードで実行できます。平均所要時間は最短です。5つ星の推奨 関数 uniqueFunc(arr, uniId){ const res = 新しい Map(); arr.filter((item) => !res.has(item[uniId]) && res.set(item[uniId], 1)); を返します。 } 2. 削減を使用するコードが少し増え、平均所要時間は最初のものと同等、4つ星の推奨 関数 uniqueFunc2(arr, uniId){ ハッシュ = {} 戻り値 arr.reduce((accum,item) => { ハッシュ[item[uniId]] ? '' : ハッシュ[item[uniId]] = true && accum.push(item) 累積を返す },[]) } 3. forループの使用1番目と2番目よりも少し時間がかかりますが、費やされる時間は平均的です。Samsungが推奨しています。 関数 uniqueFunc3(arr, uniId){ obj = {} とします tempArr = [] とします for(var i = 0; i<arr.length; i++){ if(!obj[arr[i][uniId]]){ tempArr.push(arr[i]) obj[arr[i][uniId]] = 真 } } tempArr を返す } 3. 2400データに対する3つの方法の処理時間の比較
テスト時間のスクリーンショット表示 要約するこれで、JS オブジェクト配列の重複排除の 3 つの方法と比較に関する記事は終了です。より関連性の高い JS オブジェクト配列の重複排除コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Ubuntu 18.04 に vsftpd をインストールするための実装コード
目次バブルソート選択ソート挿入ソート要約するバブルソートバブルソートは、シーケンスの右側から始めて、...
この記事では、無限ループスクロールを実現するためのReactの具体的なコードを参考までに紹介します。...
序文最近、仕事で問題が発生しました。データベースを作成した後、データベースに接続するときにエラーが発...
序文Docker は過去 2 年間で非常に人気が高まっています。開発者はすべてのアプリケーションとソ...
MySQLの完全バックアップを実行するときは、--all-databaseパラメータを使用します。例...
目次トリガーについてトリガーの使用トリガーを作成するトリガーを表示トリガーの削除使用上の注意新旧の違...
以前は、ほとんどすべての Web サイトに、すべてのページをリストしたサイトマップ ページがありまし...
目次参照と反応参照反応的RefとReactiveの違いshallowRef と shallowRea...
イベント委任を使用してメッセージ ボード機能を実装します。 <!DOCTYPE html>...
準備する1. 必要なインストールパッケージをダウンロードするhttps://www.php.net/...
Vue ユーザーとして、React を拡張する時が来ました。antd の導入、less と rout...
ほとんどのナビゲーション バーは、下の図に示すように水平に配置されていますが、これはどのように実現さ...
問題の説明:エラーメッセージ:原因: com.mysql.jdbc.PacketTooBigExce...
この記事では、Reactリストバーとショッピングカートコンポーネントの具体的なコードを参考までに紹介...
<br />Web ページによっては、サイズは大きくないように見えても開くのに非常に時間...