farklı diziler nesneler arasında daha büyük bir değer hesaplamak

oy
0

Bir var score: iki nesnelerini içeren diziye Liga ve Premier . Bu 2 amaçları takımın bir listesini bir dizi bulunmaktadır.

Ben daha dizeyi tanımlamak mümkün oldu scoreönce nesneleri tek bir dizi olmuştur.

Bu demo karşılaştırma gayet iyi çalışıyor ben çoğaltılamaz.

Bu 2 nesneleri göre daha yüksek bir değer hesaplamak kodudur.

const maxAverage = teams => {
  return teams.map(team => {
      return {
          team:team, 
          avg: getAverage(team)
      }
  }).reduce((a,b)=>a.avg>b.avg?a:b).team
}


<p>Stronger Team:{maxAverage([this.state.homeCity,this.state.awayCity])</p>

Sorun şimdi olmasıdır scoredediğim gibi 2 nesnenin bir dizidir ve ben gibi bir şey benim işlevini değiştirmeye çalışıyorum

const maxAverage = (league, teams) => {
  return teams.map(team => {
      return {
          team:team,
          avg: getAverage(league,team)
      }
  }).reduce((a,b)=>a.avg>b.avg?a:b).team
}

Benim işleve geçmek mümkün değilim maxAverageben karşılaştırmak istiyorum daha sonra iki seçilmiş ligler ve 2 nesneler (takım) birinin parametresi.

Bu, diğer bir demo i mevcut durum ile çoğaltılamaz.

Oluştur 24/10/2019 saat 11:59
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
-1

devlet tasarrufu, seçilen ve daha önce kullanılan aynı yöntemi kullanın neden basitçe takımı ayıklamak değil?

Cevap 24/10/2019 saat 12:06
kaynak kullanıcı

oy
0

İmza Verilen const maxAverage = (league, teams) => ...(değil emin iş mantığı olsa hakkında) beklenen argümanlar eşleşir kod aşağıdaki:

maxAverage(
  this.state.selectedLeague,
  [this.state.selectedHomeTeam, this.state.selectedAwayTeam]
)
Cevap 27/10/2019 saat 11:40
kaynak kullanıcı

oy
0

Sorun nedir?

const scores = {'liga':[
  { day: "1", Barcelona: 1, Real: 3, Valencia: 0 },
  { day: "2", Barcelona: 4, Real: 6, Valencia: 3 },
  { day: "3", Barcelona: 7, Real: 7, Valencia: 3 },
  { day: "4", Barcelona: 7, Real: 8, Valencia: 6 }
], 'primier':[
  { day: "1", Barcelona: 1, Real: 3, Valencia: 0 },
  { day: "2", Barcelona: 4, Real: 6, Valencia: 3 },
  { day: "3", Barcelona: 7, Real: 7, Valencia: 3 },
  { day: "4", Barcelona: 7, Real: 8, Valencia: 6 }]};
const getAverage = (type, team) => {
  if (isNaN(scores[type][0][team])) return null;

  return scores[type].map(x => x[team]).reduce((a, c) => a + c) / scores[type].length;
};
getAverage('liga',this.state.homeCity);

src: https://codesandbox.io/s/recharts-examples-d9qy0

Cevap 27/10/2019 saat 12:06
kaynak kullanıcı

oy
0

Ben senin ikinci demo baktım ve seçtiğiniz doğru takımı almak için iki seçenek var ve her ikisi için de önceki getAverage yöntemini yeniden kullanabilirsiniz. ya

  const maxAverage = (league, teams) => {
  const currentLeague = [scores][0][league]
  return teams
    .map(team => {
      return {
        team: team,
        avg: getAverage(currentLeague, team)
      };
    })
    .reduce((a, b) => (a.avg > b.avg ? a : b)).team;
};

alternatif orijinal maxAverage kodunu tutmak ve lig değeri örneğin uygulamak nasıl değiştirebilir.

            <p>           
              Stronger Team:
              {maxAverage(scores[this.state.selectedLeague], [
                this.state.selectedHomeTeam,
                this.state.selectedAwayTeam
              ])}
            </p>
Cevap 29/10/2019 saat 13:14
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more