フィルタとマップの後にユーザーIDを取得する方法

Noderjs

各サービスの名前とユーザーIDを使用してオブジェクトを作成しようとしていますが、オブジェクトは次のようになります。

const object = {
    name: Netflix, user: (user id who pays max price for this provider)
    name: Comcast, user: (same)
    name: Verizon, user: (same)
}

マップリターンでオブジェクトプロパティを変更しようとしましたが、機能していません。また、オブジェクトはすでに半分完了しています。つまり、プロバイダーの名前を使用して、他のキーと値のペアが必要になります。

const services = [
     { userid: 1, providerId: 1, amount: 250000 },
     { userid: 4, providerId: 3, amount: 280900 },
     { userid: 6, providerId: 3, amount: 31000 },
     { userid: 2, providerId: 2, amount: 58600 },
     { userid: 3, providerId: 1, amount: 13000 },
     { userid: 5, providerId: 2, amount: 5000 },
     { userid: 3, providerId: 3, amount: 59900 },
     { userid: 6, providerId: 3, amount: 9500 }
]

const providers = [
    { id: 1, name: Netflix },
    { id: 2, name: Comcast },
    { id: 3, name: Verizon }
]

これが私の機能です

function getUserId(providerId) {
    return services.filter(function(obj) {
        if (obj.providerId == providerId)
            return obj.providerId;
    }).map(function(obj) { return obj.amount });
}

function getMaxUserId(providerId) {
    return Math.max(...getUserId(providerId));
}

providers.forEach(prov => {
    object[prov.name] = getUserId(prov.id);
})

ご覧のとおり、最初に配列全体をフィルタリングして特定のproviderIdを持つプロバイダーを探し、次にその特定のプロバイダーのすべての「金額」で満たされたmap関数を使用して新しい配列を作成し、最後にその配列の最大量を検索します。すべて正常に動作し、各プロバイダーに適切な最大金額を返しますが、各プロバイダーに最も多く支払っているユーザーIDも取得したいと思います

実際、私は次のようなオブジェクトを取得しています。

[
   {name: Netflix, user: 250000},
   {name: Comcast, user: 58600},
   {name: Verizon, user: 280900}
]

そして私はこれが必要です:

[
   {name: Netflix, user: 1},
   {name: Comcast, user: 2},
   {name: Verizon, user: 4}
]
オレグ・ヴァルター

そして、あなたの問題に対する3番目の可能な解決策として(私のコメントのフォローアップ)、次のようなものを使用できます(オブジェクトを変更できますが、好みに応じて変更できますがnameuserキーを完全に削除することをお勧めします):

const object = {};

function getUserId(providerId) {
    return services.filter(function(obj) {
        if (obj.providerId == providerId)
            return obj.providerId;
    }).map(function(obj) { return obj });
}

function getMaxUserId(output) {
    let amm = output.map( (o) => { return o.amount; } );
    let idx = amm.indexOf(Math.max(...amm));
    return output[idx].userid;
}

providers.forEach(prov => {
    object[prov.name] = getMaxUserId(getUserId(prov.id));
})

console.log(object)

このソリューションを使用した場合の出力は次のようになります。

Object { Netflix: 1, Comcast: 2, Verizon: 4 }

多くの場合、少し調整するだけでArray、元の意図どおりにオブジェクトを返すことができます代わりに割り当てることobject忘れないでください[])。

providers.forEach(prov => {
  object.push( {name:prov.name,user:getMaxUserId(getUserId(prov.id))} )
})

後者の場合、出力は次のようになります。

Array [Object { name: "Netflix", user: 1 }, Object { name: "Comcast", user: 2 }, Object { name: "Verizon", user: 4 }]

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

サインアップ後にallauthのユーザープロファイルフィールドをカスタマイズする方法

分類Dev

ユーザーの接続後にフィードバックを取得する

分類Dev

スキーマ参照をユーザーの配列フィールドにプッシュしてユーザーオブジェクトを更新する方法

分類Dev

ユーザーがドロップダウンで「その他」を選択したときに入力フィールドを取得する方法

分類Dev

ユーザーのアイドル時間を取得するマルチプラットフォームの方法

分類Dev

WordPressを使用して、既存のすべてのユーザーデータを他のフィールドデータと一緒に取得する方法

分類Dev

現在のFacebookユーザーのパブリックID(スコープIDではない)を取得したり、現在のユーザーのプロフィール写真を取得したりするにはどうすればよいですか?

分類Dev

ユーザー名とメールを取得してUserAccountsDrawerHeaderにフラッターで表示する方法

分類Dev

Facebook iOS SDKとswift:ユーザーのプロフィール写真を取得する方法

分類Dev

セマンティックUIReactのドロップダウンにアバター(ユーザープロフィール写真)を追加する

分類Dev

マップとフィルター内の配列の長さを取得する

分類Dev

ユーザーがフィールドの名前/ IDを入力したときにテキストボックスの値を取得する

分類Dev

SQLサーバーでアクセス許可を付与/拒否し、ユーザーをデータベースのユーザーテーブルのユーザーIDにマップする方法は?

分類Dev

MagnoliaCMSマーケティングタグにログインしたユーザーIDを取得する方法

分類Dev

angle2の現在のユーザーIDに基づいてデータセットをフィルタリングする方法

分類Dev

ストリームでフィルター付きのマップを使用するときに参加する方法

分類Dev

登録後に特定のフィールドを持つフォームをユーザーに表示する方法

分類Dev

'CAMLを使用して現在のユーザーによるフィルタールックアップを修正する方法

分類Dev

マップされたエンティティの属性Springにフィルターが適用された後、1対1のマップされたエンティティからデータを取得する方法

分類Dev

ユーザーごとにデータの最初と最後の行を取得する方法

分類Dev

FacebookAPI-マイアプリのユーザーの公開プロフィール情報を取得する

分類Dev

ValueError:ユーザーに基づいてモデルデータをフィルタリングするときのフィールド 'id'

分類Dev

ユーザーIDを使用してFirebaseのフィールドを取得する方法

分類Dev

メールを使用してGmailユーザーのプロフィール写真を取得する方法

分類Dev

配列にIDでオブジェクトを入力するためのマップとフィルター

分類Dev

ユーザーIDのプロファイルIDを取得する

分類Dev

ユーザーを再マップする前ではなく、PAMの後にsetuidをSSHに指示する方法

分類Dev

Djangoフィルターは、ユーザーがドロップダウンフィルターの値を変更するとクエリを更新します

分類Dev

フィルターでデータベースからユーザーをフェッチし、jwt応答にIDを追加する方法

Related 関連記事

  1. 1

    サインアップ後にallauthのユーザープロファイルフィールドをカスタマイズする方法

  2. 2

    ユーザーの接続後にフィードバックを取得する

  3. 3

    スキーマ参照をユーザーの配列フィールドにプッシュしてユーザーオブジェクトを更新する方法

  4. 4

    ユーザーがドロップダウンで「その他」を選択したときに入力フィールドを取得する方法

  5. 5

    ユーザーのアイドル時間を取得するマルチプラットフォームの方法

  6. 6

    WordPressを使用して、既存のすべてのユーザーデータを他のフィールドデータと一緒に取得する方法

  7. 7

    現在のFacebookユーザーのパブリックID(スコープIDではない)を取得したり、現在のユーザーのプロフィール写真を取得したりするにはどうすればよいですか?

  8. 8

    ユーザー名とメールを取得してUserAccountsDrawerHeaderにフラッターで表示する方法

  9. 9

    Facebook iOS SDKとswift:ユーザーのプロフィール写真を取得する方法

  10. 10

    セマンティックUIReactのドロップダウンにアバター(ユーザープロフィール写真)を追加する

  11. 11

    マップとフィルター内の配列の長さを取得する

  12. 12

    ユーザーがフィールドの名前/ IDを入力したときにテキストボックスの値を取得する

  13. 13

    SQLサーバーでアクセス許可を付与/拒否し、ユーザーをデータベースのユーザーテーブルのユーザーIDにマップする方法は?

  14. 14

    MagnoliaCMSマーケティングタグにログインしたユーザーIDを取得する方法

  15. 15

    angle2の現在のユーザーIDに基づいてデータセットをフィルタリングする方法

  16. 16

    ストリームでフィルター付きのマップを使用するときに参加する方法

  17. 17

    登録後に特定のフィールドを持つフォームをユーザーに表示する方法

  18. 18

    'CAMLを使用して現在のユーザーによるフィルタールックアップを修正する方法

  19. 19

    マップされたエンティティの属性Springにフィルターが適用された後、1対1のマップされたエンティティからデータを取得する方法

  20. 20

    ユーザーごとにデータの最初と最後の行を取得する方法

  21. 21

    FacebookAPI-マイアプリのユーザーの公開プロフィール情報を取得する

  22. 22

    ValueError:ユーザーに基づいてモデルデータをフィルタリングするときのフィールド 'id'

  23. 23

    ユーザーIDを使用してFirebaseのフィールドを取得する方法

  24. 24

    メールを使用してGmailユーザーのプロフィール写真を取得する方法

  25. 25

    配列にIDでオブジェクトを入力するためのマップとフィルター

  26. 26

    ユーザーIDのプロファイルIDを取得する

  27. 27

    ユーザーを再マップする前ではなく、PAMの後にsetuidをSSHに指示する方法

  28. 28

    Djangoフィルターは、ユーザーがドロップダウンフィルターの値を変更するとクエリを更新します

  29. 29

    フィルターでデータベースからユーザーをフェッチし、jwt応答にIDを追加する方法

ホットタグ

アーカイブ