[解決済み] lodashのincludesメソッドを使って、オブジェクトがコレクションにあるかどうかを確認するにはどうすればよいですか?
2022-04-22 08:27:25
質問
で基本的なデータ型のメンバーシップをチェックすることができます。
includes
:
_.includes([1, 2, 3], 2)
> true
しかし、次のようにするとうまくいきません。
_.includes([{"a": 1}, {"b": 2}], {"b": 2})
> false
コレクションを検索する以下のメソッドはうまくいくように見えるので、これは私を混乱させる。
_.where([{"a": 1}, {"b": 2}], {"b": 2})
> {"b": 2}
_.find([{"a": 1}, {"b": 2}], {"b": 2})
> {"b": 2}
何が間違っているのでしょうか? コレクション内のオブジェクトのメンバーシップをチェックするには
includes
?
を編集します。 の質問は元々lodashバージョン2.4.1用でしたが、lodash4.0.0用に更新されました。
解決方法を教えてください。
その
includes
(旧称
contains
と
include
) メソッドはオブジェクトを参照で(正確には
===
). の2つのオブジェクトリテラルは
{"b": 2}
を表現しています。
異なる
のインスタンスであり、それらは等しくありません。気づいてください。
({"b": 2} === {"b": 2})
> false
のインスタンスは1つだけなので、これはうまくいくでしょう。
{"b": 2}
:
var a = {"a": 1}, b = {"b": 2};
_.includes([a, b], b);
> true
一方
where
(v4で非推奨)と
find
メソッドはオブジェクトをそのプロパティで比較するので、 参照の等質性は要求されません。の代わりとして
includes
を試してみてください。
some
(というエイリアスもあります。
any
):
_.some([{"a": 1}, {"b": 2}], {"b": 2})
> true
関連
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み】Node.js Error: Cannot find module express
-
[解決済み】リクエストに失敗していないのに、「TypeError: failed to fetch」が表示される。
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
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のクロージャの説明
-
vueにおけるv-forループオブジェクトのプロパティ
-
vueが定義するプライベートフィルタと基本的な使い方
-
Vueのフィルタの説明
-
[解決済み】リソースの読み込みに失敗した:Bind関数でサーバーが500(Internal Server Error)のステータスで応答した【非公開
-
[解決済み】ExpressJS - throw er Unhandled errorイベント
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules