複数の文字列値を持つキーを含む配列をフィルタリングするにはどうすればよいですか?

トニー

私はこのようなJSONファイルを持っています:

[{
    "movie": "The Dark Knight",
    "description": "The caped crusader protects Gotham from new evil.",
    "director": "Christopher Nolan",
    "genres": "superhero, thriller, action",
    "year": "2008"
}, {
    "movie": "IT Chapter Two",
    "description": "Pennywise returns once more 27 years later.",
    "director": "Andrés Muschietti",
    "genres": "horror, mystery",
    "year": "2019"
}, {
    "movie": "Avengers: Endgame",
    "description": "The Avengers have a last stand against Thanos.",
    "director": "Anthony Russo",
    "genres": "action, superhero",
    "year": "2019"
}]

オブジェクトの配列全体をフィルター処理して、フィルター処理されたオブジェクトを含む新しい配列を返すことができるフィルター関数を作成したいと思います。私の関数は次のようなものです:

function myfilter(genres) {
    let myJSON = parseJSON();
    var newArray = myJSON.filter(function (item) {
        return item.genres === genres
    });
    console.log(newArray);
}

問題は、この機能は他のどのキーでも機能しますが、「ジャンル」キーでは機能しないことです。次のような入力をフィードしたい:myfilter(['action', 'superhero']);

そして戻る必要があります:

[{
    "movie": "The Dark Knight",
    "description": "The caped crusader protects Gotham from new evil.",
    "director": "Christopher Nolan",
    "genres": "superhero, thriller, action",
    "year": "2008"
},{
    "movie": "Avengers: Endgame",
    "description": "The Avengers have a last stand against Thanos",
    "director": "Anthony Russo",
    "genres": "action, superhero",
    "year": "2019"
}]
ニーナ・ショルツ

オブジェクトのジャンル文字列を分割して、文字列の一部がジャンル配列に含まれているかどうかを確認できます。

このソリューションには、2つのアプローチがあります。

  1. 一致するジャンルが1つだけのすべてのアイテムを取得しますfilterSome
  2. すべてのジャンルが一致するすべてのアイテムを取得しますfilterEvery

主な違いは、Array#someそれぞれの使用ですArray#every

function filterSome(array, genres) {
    return array.filter(function (item) {
        var keys = item.genres.split(/,\s*/);
        return genres.some(g => keys.includes(g));
    });
}

function filterEvery(array, genres) {
    return array.filter(function (item) {
        var keys = item.genres.split(/,\s*/);
        return genres.every(g => keys.includes(g));
    });
}

var array = [{ movie: "The Dark Knight", description: "The caped crusader protects Gotham from new evil.", director: "Christopher Nolan", genres: "superhero, thriller, action", year: "2008" }, { movie: "IT Chapter Two", description: "Pennywise returns once more 27 years later.", director: "Andrés Muschietti", genres: "horror, mystery", year: "2014" }, { movie: "Avengers: Endgame", description: "The Avengers have a last stand against Thanos", director: "Anthony Russo", genres: "action", year: "2019" }];

console.log(filterSome(array, ['action', 'superhero']));
console.log(filterEvery(array, ['action', 'superhero']));
.as-console-wrapper { max-height: 100% !important; top: 0; }

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

ネストされた配列を持つ要素を含む配列をフィルタリングするにはどうすればよいですか?

分類Dev

複数の行を持つSQLクエリから非文字列配列フィールドを取得するにはどうすればよいですか?

分類Dev

1つの列を複数の値でフィルタリングするにはどうすればよいですか(厳密なフィルター)?

分類Dev

複数の値で列をフィルタリングするにはどうすればよいですか

分類Dev

特定の文字列を含むプロパティでJSONデータをフィルタリングするにはどうすればよいですか?

分類Dev

nullの値を持つことがある配列をフィルタリングするにはどうすればよいですか?

分類Dev

javascriptで文字のシーケンスを持つ文字列をフィルタリングするにはどうすればよいですか?

分類Dev

Excelで複数の列のデータを1つの列にフィルタリングするにはどうすればよいですか?

分類Dev

Sublime Text 2の文字列を含む行のファイルをフィルタリングするにはどうすればよいですか?

分類Dev

配列の配列をキーと値を含むグループ化された配列に変換するにはどうすればよいですか?

分類Dev

配列内の複数の値をフィルタリングするにはどうすればよいですか

分類Dev

jQueryとCSSを使用して、複数の値を持つリストをフィルタリングするにはどうすればよいですか?

分類Dev

const文字列に含まれる列値(文字列)でDataFrameをフィルタリングするにはどうすればよいですか?

分類Dev

文字列内の特定のキーに対応する値をフィルタリングするにはどうすればよいですか?

分類Dev

MySqlで複数の列をフィルタリングして複数の数値を制限するにはどうすればよいですか?

分類Dev

列名に文字列照合を使用して、dplyrで複数の列をフィルタリングするにはどうすればよいですか?

分類Dev

グーグルデータスタジオで複数の値を持つフィルターを作成するにはどうすればよいですか?

分類Dev

複数の値を持つオブジェクトをフィルタリングするにはどうすればよいですか?

分類Dev

複数のデータフレームをループして文字列のリストを取得し、文字列を含む列を検索して、複数の新しいファイルを作成するにはどうすればよいですか?

分類Dev

Pythonで複数の文字列を含む配列から文字列の中央値を取得するにはどうすればよいですか?

分類Dev

複数の選択ボタンを使用してVue.jsの配列をフィルタリングするにはどうすればよいですか?

分類Dev

キー、値を含む複数の配列を含むハッシュテーブルを反復処理し、別の文字列を追加するにはどうすればよいですか?

分類Dev

サブドキュメントの配列を複数のフィールドでグループ化するにはどうすればよいですか?

分類Dev

プロパティの1つに文字列を含むmongoドキュメントをフィルタリングするにはどうすればよいですか?

分類Dev

StateTransitionReasonのような日付を含む文字列値の日付範囲で開始されたec2に一致するようにawsCLIを使用してフィルタリングするにはどうすればよいですか?

分類Dev

DataFrameセルの文字列の一部をフィルタリングする数値に変換するにはどうすればよいですか?

分類Dev

配列内の配列の値に応じて配列をフィルタリングするにはどうすればよいですか?

分類Dev

Javascript-リストのフィルタリング:配列と配列を含むオブジェクトとの配列間の交差を見つけるにはどうすればよいですか?

分類Dev

TypeScriptインターフェイスで複数のオブジェクトを含む配列を指定するにはどうすればよいですか?

Related 関連記事

  1. 1

    ネストされた配列を持つ要素を含む配列をフィルタリングするにはどうすればよいですか?

  2. 2

    複数の行を持つSQLクエリから非文字列配列フィールドを取得するにはどうすればよいですか?

  3. 3

    1つの列を複数の値でフィルタリングするにはどうすればよいですか(厳密なフィルター)?

  4. 4

    複数の値で列をフィルタリングするにはどうすればよいですか

  5. 5

    特定の文字列を含むプロパティでJSONデータをフィルタリングするにはどうすればよいですか?

  6. 6

    nullの値を持つことがある配列をフィルタリングするにはどうすればよいですか?

  7. 7

    javascriptで文字のシーケンスを持つ文字列をフィルタリングするにはどうすればよいですか?

  8. 8

    Excelで複数の列のデータを1つの列にフィルタリングするにはどうすればよいですか?

  9. 9

    Sublime Text 2の文字列を含む行のファイルをフィルタリングするにはどうすればよいですか?

  10. 10

    配列の配列をキーと値を含むグループ化された配列に変換するにはどうすればよいですか?

  11. 11

    配列内の複数の値をフィルタリングするにはどうすればよいですか

  12. 12

    jQueryとCSSを使用して、複数の値を持つリストをフィルタリングするにはどうすればよいですか?

  13. 13

    const文字列に含まれる列値(文字列)でDataFrameをフィルタリングするにはどうすればよいですか?

  14. 14

    文字列内の特定のキーに対応する値をフィルタリングするにはどうすればよいですか?

  15. 15

    MySqlで複数の列をフィルタリングして複数の数値を制限するにはどうすればよいですか?

  16. 16

    列名に文字列照合を使用して、dplyrで複数の列をフィルタリングするにはどうすればよいですか?

  17. 17

    グーグルデータスタジオで複数の値を持つフィルターを作成するにはどうすればよいですか?

  18. 18

    複数の値を持つオブジェクトをフィルタリングするにはどうすればよいですか?

  19. 19

    複数のデータフレームをループして文字列のリストを取得し、文字列を含む列を検索して、複数の新しいファイルを作成するにはどうすればよいですか?

  20. 20

    Pythonで複数の文字列を含む配列から文字列の中央値を取得するにはどうすればよいですか?

  21. 21

    複数の選択ボタンを使用してVue.jsの配列をフィルタリングするにはどうすればよいですか?

  22. 22

    キー、値を含む複数の配列を含むハッシュテーブルを反復処理し、別の文字列を追加するにはどうすればよいですか?

  23. 23

    サブドキュメントの配列を複数のフィールドでグループ化するにはどうすればよいですか?

  24. 24

    プロパティの1つに文字列を含むmongoドキュメントをフィルタリングするにはどうすればよいですか?

  25. 25

    StateTransitionReasonのような日付を含む文字列値の日付範囲で開始されたec2に一致するようにawsCLIを使用してフィルタリングするにはどうすればよいですか?

  26. 26

    DataFrameセルの文字列の一部をフィルタリングする数値に変換するにはどうすればよいですか?

  27. 27

    配列内の配列の値に応じて配列をフィルタリングするにはどうすればよいですか?

  28. 28

    Javascript-リストのフィルタリング:配列と配列を含むオブジェクトとの配列間の交差を見つけるにはどうすればよいですか?

  29. 29

    TypeScriptインターフェイスで複数のオブジェクトを含む配列を指定するにはどうすればよいですか?

ホットタグ

アーカイブ