2

このような配列があります。

Users : {
  0 : { BidderBadge: "somestuff", Bidders: 6, }
  1 : { BidderBadge: "somemorestuff", Bidders: 7,}
}

各ユーザー オブジェクト内の値を見つけるために、lodash を使用して配列を検索したいと考えています。

具体的には、別の同様のオブジェクト配列の値を使用して値を見つけたいと考えています。

var bidArray = [];
    _.each(this.vue.AllUsers, function(user) {
      _.each(this.vue.Bids, function(bid) {
        if(user.BidderBadge == bid.Badge) {   
          bidArray.push(user);
        }
      });
    });

これは私が持っているもので動作しますが、2 つではなく 1 つのループだけを使用して実行したいと考えています。_.indexOf のようなものを使いたいです。それは可能ですか?

4

2 に答える 2

1

あなたが提供する入力と一致しない例で正確な答えを出すことは困難です.

とにかく、データ構造が多かれ少なかれこのようなものであると仮定すると、 lodash _.intersectionWithで問題を解決できます。

正しいオブジェクト プロパティをチェックするコンパレータを使用して、両方の配列を交差させます。また、交差点の値に関心があるため、交差点ではユーザーが最初に行かなければならないことも考慮してください。

function comparator(user, bid) {
  return user.BidderBadge === bid.Badge;
}
console.log(_.intersectionWith(users, bids, comparator));

これがフィドルです。

于 2016-10-12T17:36:11.347 に答える