オブジェクト内の配列に別の配列のすべてのアイテムが含まれているオブジェクトの配列をフィルタリングするにはどうすればよいですか?

securisec

それ自体が配列を持っているオブジェクトの配列を、配列ごとのフィルターでフィルター処理するにはどうすればよいですか?配列ごとのフィルター内のすべてのアイテムは、オブジェクト配列内にありますか?

例を挙げて説明する方が簡単かもしれません。

const data = [
    {user: 'bob', favoriteThings: ['cats', 'dogs', 'movies']},
    {user: 'sally', favoriteThings: ['cats', 'movies', 'trees']},
]

const filterByFavs = ['cats', 'trees']

// result should only include [{user: 'sally', favoriteThings: ['cats', 'movies', 'trees']}]
// if filterByFavs is ['cats'], then both users are returned. 
// favoriteThings has to have all the items from filterByFavs in order for the filter to apply.     

上記切り取らでは、私はフィルタリングしようとしていますdataので、結果は唯一のすべての項目では、オブジェクト含まれていることfilterByFavsにありますがfavoriteThings

私は両方reduceこれを解決しようとしfilterましたが、望ましい結果が得られないようです。

let out = data.filter((fav) => {
    return (
        fav.favoriteThings.filter((tag) => {
            return !filterByFavs.includes(tag);
        })
    );
});

let a = data.reduce((acc, fav) => {
    let favs = fav.favoriteThings;
    let allExists = favs.filter((tag) => !filterByFavs.includes(tag.text));
    if (allExists) {
        acc.push(fav);
        return acc;
    }
    return acc;
}, []);

私のロジックで直面している問題は、filterByFavsアイテムが1つしかない場合は正常にフィルタリングできますが、複数ある場合はフィルタリングできないことです。

特定のパフォーマンス

検索.everyするアイテムの1つが、繰り返される他の配列に含まれていることを確認します。

const data = [
    {user: 'bob', favoriteThings: ['cats', 'dogs', 'movies']},
    {user: 'sally', favoriteThings: ['cats', 'movies', 'trees']},
];
const filterByFavs = ['cats', 'trees'];
const result = data.filter(
  obj => filterByFavs.every(str => obj.favoriteThings.includes(str))
);
console.log(result);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

TOP 一覧

  1. 1

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  2. 2

    CSSのみを使用して三角形のアニメーションを作成する方法

  3. 3

    ZScalerと証明書の問題により、Dockerを使用できません

  4. 4

    ドロップダウンリストで選択したアイテムのQComboBoxスタイル

  5. 5

    別のホストからTomcat Managerアプリにアクセスする

  6. 6

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  7. 7

    Windows 10でのUSB入力デバイスの挿入/取り外しの検出

  8. 8

    Python / SciPyのピーク検出アルゴリズム

  9. 9

    MLでのデータ前処理の背後にある直感

  10. 10

    useRefに反応してコンポーネントをスクロールして表示する

  11. 11

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  12. 12

    パンダは異なる名前の列に追加します

  13. 13

    PictureBoxで画像のブレンドを無効にする

  14. 14

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  15. 15

    Pythonを使用して、リストからデータを読み取り、特定の値をElasticsearchにインデックス付けするにはどうすればよいですか?

  16. 16

    LinuxでPySide2(Qt for Python)をインストールするQt Designerはどこにありますか?

  17. 17

    Material-UIでTextFieldエラーの色を条件付きでオーバーライドする方法

  18. 18

    goormIDEは、ターミナルがロードするデフォルトプロジェクトを変更します

  19. 19

    MatplotlibまたはSeabornを使用して、グループ化されたデータから複数のプロットを生成するにはどうすればよいですか?

  20. 20

    Luaの文字列から特定の特殊文字を削除するにはどうすればよいですか?

  21. 21

    Flutterにファイルピッカープラグインを追加するにはどうすればよいですか?

ホットタグ

アーカイブ