配列からすべてのユニークな要素を取得するためのjQuery関数?
2023-11-03 01:45:02
質問
jQuery.unique
は配列のユニークな要素を取得することができますが、ドキュメントによるとこの関数はほとんど内部使用で、DOM要素にのみ作用するそうです。別の SO の回答では
unique()
関数は数字で動作したが、ドキュメントに明示されていないため、このユースケースは必ずしも将来的に保証されるものではないと述べています。
これを考えると、配列内の一意の値 (具体的には、整数のようなプリミティブ) のみにアクセスするための "standard" jQuery 関数はあるのでしょうか? (明らかに、私たちは
each()
関数でループを構築できますが、私たちはjQueryに慣れておらず、このための専用のjQuery関数があるかどうかを知りたいのです)。
どのように解決するのですか?
この場合
array.filter
を使うと、各個別の値の最初の項目を返します。
var a = [ 1, 5, 1, 6, 4, 5, 2, 5, 4, 3, 1, 2, 6, 6, 3, 3, 2, 4 ];
var unique = a.filter(function(itm, i, a) {
return i == a.indexOf(itm);
});
console.log(unique);
IE8以下のサポートが第一の場合、サポートされていない
filter
メソッドを使用しないでください。
それ以外の場合は
if (!Array.prototype.filter) {
Array.prototype.filter = function(fun, scope) {
var T = this, A = [], i = 0, itm, L = T.length;
if (typeof fun == 'function') {
while(i < L) {
if (i in T) {
itm = T[i];
if (fun.call(scope, itm, i, T)) A[A.length] = itm;
}
++i;
}
}
return A;
}
}
関連
-
[解決済み] jQueryを使って要素のIDを取得するにはどうすればよいですか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み] JavaScriptの配列で一意な値をすべて取得する(重複を排除する)。
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] jQueryで現在のURLを取得する?
-
[解決済み] Javascriptで配列から空の要素を削除する
-
[解決済み] jQuery ドロップダウンから選択されたオプションを取得する
-
[解決済み] jQuery get specific option tag text
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScriptの配列で一意な値をすべて取得する(重複を排除する)。
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] なぜjavascriptのES6 Promisesはresolve後も実行を継続するのですか?
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる