Angular-オブジェクトの別の配列の値に基づいてオブジェクトの配列をフィルタリングします

ニールスファーガソン

いくつかの設定に基づいてオブジェクトの配列をフィルタリングする必要があります。

フィルタリングする必要のある配列は次のようになります。

const products = [
    {value: 'v1', color: 'blue'},
    {value: 'v1', color: 'black'},
    {value: 'v1', color: 'red'},
    {value: 'v2', color: 'green'},
    {value: 'v2', color: 'red'},
    {value: 'v3', color: 'red'},
    {value: 'v4', color: 'blue'}
]

設定は次のようになります。

const preferences = [
    {type: {value: 'v1', label: 'l1'}, color: 'blue'},
    {type: {value: 'v1', label: 'l1'}, color: 'red'},
    {type: {value: 'v2', label: 'l2'}, color: 'blue'},    
    {type: {value: 'v3', label: 'l3'}, color: 'red'},
    {type: {value: 'v4', label: 'l4'}, color: 'green'}
]

フィルタは、設定の値と色の両方に一致するすべてのオブジェクトを返す必要があります。したがって、望ましい結果は次のようになります。

[
    {value: 'v1', color: 'blue'},
    {value: 'v1', color: 'red'},
    {value: 'v3', color: 'red'},
]

ここで見つけた例から次の関数を使用しようとしまし

function filterArray(allObjects, preferenceFilter) {
  const filterKeys = Object.keys(preferenceFilter);
  return allObjects.filter(item => {
    return filterKeys.every(key => {
      if (typeof preferenceFilter[key] !== 'function') return true;
      return preferenceFilter[key](item[key]);
    });
  });
}

問題は、プリファレンスをフォームのフィルター基準に変換する必要があることです。

{color: x => x === 'red', type: y => y === 'v1' || y === 'v3'},
{color: x => x === 'blue', type: y => y === 'v1' || y === 'v2'},
{color: x => x === 'green', type: y => y === 'v4'}

どうすればよいですか?または、この問題を解決するためのより良い方法はありますか。

助けてくれてありがとう!

Reactgular

製品フィルタリングして、設定に一致するものある場合に製品が選択されるようにすることができます

const products = [
{value: 'v1', color: 'blue'},
{value: 'v1', color: 'black'},
{value: 'v1', color: 'red'},
{value: 'v2', color: 'green'},
{value: 'v2', color: 'red'},
{value: 'v3', color: 'red'},
{value: 'v4', color: 'blue'}
];

const preferences = [
{type: {value: 'v1', label: 'l1'}, color: 'blue'},
{type: {value: 'v1', label: 'l1'}, color: 'red'},
{type: {value: 'v2', label: 'l2'}, color: 'blue'},
{type: {value: 'v3', label: 'l3'}, color: 'red'},
{type: {value: 'v4', label: 'l4'}, color: 'green'}
];

const filtered = products.filter(a => preferences.some(b => b.type.value === a.value && b.color === a.color));

console.log(filtered);

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パイプを使用したオブジェクトの配列に基づくオブジェクトのAngular2フィルタリング配列

分類Dev

Angular2のオブジェクトの配列のプロパティ値に基づいてフィルタリングする方法は?

分類Dev

Angularの別のオブジェクトの属性に基づいてオブジェクトの配列をフィルタリングするにはどうすればよいですか?

分類Dev

Angular6の別の配列に基づいて配列からオブジェクトを削除する方法

分類Dev

Angular 2 の子配列によるオブジェクトのリストのフィルタリング

分類Dev

Angular2 RegExpを使用してパイプでオブジェクトの配列をフィルタリングしますか?

分類Dev

配列の長さに基づいてオブジェクトを複数回複製する-Angular2 + / JavaScript

分類Dev

Angular.jsの共通オブジェクトプロパティで配列をフィルタリングしますか?

分類Dev

オブジェクト値をAngularの方法で配列に変換します

分類Dev

Angular2オブジェクト配列を別のオブジェクト配列に配置する方法

分類Dev

Angular-オブジェクトのデータ配列をフィルター処理します

分類Dev

Angular / RXJSのオブジェクト配列のObervableにオブジェクトを追加/削除しますか?

分類Dev

オブジェクトの配列を別のオブジェクトの配列に変換します-Javascript / Angular

分類Dev

jsonオブジェクト配列から値を取得し、Angularで別の配列に追加する方法

分類Dev

パイプなしでAngular4のオブジェクトの配列をフィルタリングする

分類Dev

オブジェクトの配列をAngularのPOSTに渡します

分類Dev

オブジェクト値をループするためにangular.foreachを使用して配列内の値をフェッチします

分類Dev

JSONオブジェクトの配列をインターフェースAngular / Typescriptの配列に割り当てます

分類Dev

Angular6-配列内の深いオブジェクトを更新します

分類Dev

オブジェクトをangular2 / typescriptの配列に変換します

分類Dev

Angular2オブジェクトの配列内に配列オブジェクトを表示する方法

分類Dev

配列Angular5によるオブジェクトのlodashフィルター配列

分類Dev

Angularのマットテーブルに表示されている配列リストからオブジェクトを削除します

分類Dev

Angular:Rxjsはオブジェクトの配列を介してプロパティでフィルタリングするにはどうすればよいですか?

分類Dev

2番目の配列のアイテムに配列の最初のオブジェクトのIDが含まれている場合は、Angular8でオブジェクトの2つの配列をマージします

分類Dev

Angular7のjson配列オブジェクトからIdオブジェクトを取得します

分類Dev

オブジェクトの配列をAngularのHTMLテーブルに変換します

分類Dev

Angular4の配列内のオブジェクトを比較します

分類Dev

別の値の配列に基づいてオブジェクトの配列をフィルタリングし、空のリストを返します

Related 関連記事

  1. 1

    パイプを使用したオブジェクトの配列に基づくオブジェクトのAngular2フィルタリング配列

  2. 2

    Angular2のオブジェクトの配列のプロパティ値に基づいてフィルタリングする方法は?

  3. 3

    Angularの別のオブジェクトの属性に基づいてオブジェクトの配列をフィルタリングするにはどうすればよいですか?

  4. 4

    Angular6の別の配列に基づいて配列からオブジェクトを削除する方法

  5. 5

    Angular 2 の子配列によるオブジェクトのリストのフィルタリング

  6. 6

    Angular2 RegExpを使用してパイプでオブジェクトの配列をフィルタリングしますか?

  7. 7

    配列の長さに基づいてオブジェクトを複数回複製する-Angular2 + / JavaScript

  8. 8

    Angular.jsの共通オブジェクトプロパティで配列をフィルタリングしますか?

  9. 9

    オブジェクト値をAngularの方法で配列に変換します

  10. 10

    Angular2オブジェクト配列を別のオブジェクト配列に配置する方法

  11. 11

    Angular-オブジェクトのデータ配列をフィルター処理します

  12. 12

    Angular / RXJSのオブジェクト配列のObervableにオブジェクトを追加/削除しますか?

  13. 13

    オブジェクトの配列を別のオブジェクトの配列に変換します-Javascript / Angular

  14. 14

    jsonオブジェクト配列から値を取得し、Angularで別の配列に追加する方法

  15. 15

    パイプなしでAngular4のオブジェクトの配列をフィルタリングする

  16. 16

    オブジェクトの配列をAngularのPOSTに渡します

  17. 17

    オブジェクト値をループするためにangular.foreachを使用して配列内の値をフェッチします

  18. 18

    JSONオブジェクトの配列をインターフェースAngular / Typescriptの配列に割り当てます

  19. 19

    Angular6-配列内の深いオブジェクトを更新します

  20. 20

    オブジェクトをangular2 / typescriptの配列に変換します

  21. 21

    Angular2オブジェクトの配列内に配列オブジェクトを表示する方法

  22. 22

    配列Angular5によるオブジェクトのlodashフィルター配列

  23. 23

    Angularのマットテーブルに表示されている配列リストからオブジェクトを削除します

  24. 24

    Angular:Rxjsはオブジェクトの配列を介してプロパティでフィルタリングするにはどうすればよいですか?

  25. 25

    2番目の配列のアイテムに配列の最初のオブジェクトのIDが含まれている場合は、Angular8でオブジェクトの2つの配列をマージします

  26. 26

    Angular7のjson配列オブジェクトからIdオブジェクトを取得します

  27. 27

    オブジェクトの配列をAngularのHTMLテーブルに変換します

  28. 28

    Angular4の配列内のオブジェクトを比較します

  29. 29

    別の値の配列に基づいてオブジェクトの配列をフィルタリングし、空のリストを返します

ホットタグ

アーカイブ