У меня есть несколько переменных. Первая переменная всегда содержит название футбольного клуба, а следующая - шанс забить гол в процентах.

< Сильный > Пример:

a="Man City", b=45.55%, c="Barcelona", d=57.6%, e="Everton", f=38.53%; и т. Д.

Мне нужно сравнить шансы на гол между всеми командами и отсортировать их в порядке убывания, указав, к какой команде принадлежит тот или иной шанс.

Когда я использую команду alert () , я хочу, чтобы результат был похож на:

1.Barcelona: Chance 57.6%
2.Man City: Chance 45.55%
3.Everton: Chance 38.53%
-3
Dillian 28 Май 2019 в 19:08

2 ответа

Лучший ответ

Может быть более оптимальный способ сделать это, но вот решение, которое я использовал:

  • Составьте данные значения в массив
  • Разделите значения на 2 отдельных массива, в зависимости от того, есть они или нет
  • Перебрать один из новых массивов (при условии, что они имеют одинаковую длину)
  • Создайте массив объектов с ключами city и chance
  • Сортировать массив объектов по значению chance
  • Цикл по массиву объектов для вывода желаемых результатов (я значительно упростил вывод из рабочей версии)
const a="Man City";
const b=45.55;
const c="Barcelona";
const d=57.6;
const e="Everton";
const f=38.53;

const vars = [a,b,c,d,e,f];
const city = [];
const chance = [];
const results = [];

vars.forEach((x,i) => {
  if (i % 2) {
    chance.push(x);
  } else {
    city.push(x);
  }
});

city.forEach((x,i) => {
  results.push({city: x, chance: chance[i]})
});

results.sort((a,b) => {
  if (a.chance > b.chance) {
    return -1;
  }
  if (a.chance < b.chance) {
   return 1;
  }
  
  return 0;
});

results.forEach((x,i) => {document.write(
(i + 1) + '. ' + x.city + ': Chance ' + x.chance + '%' + '<br>' 
)});
0
seantunwin 28 Май 2019 в 17:08

Эти данные лучше структурировать как массив объектов, и ваша жизнь будет намного проще с консолью javascript (нажмите F12 в браузере и на панели, которая появляется, нажмите «консоль»), например:

var array = [
    {city: "Man City", chance: .4555},
    {city: "Barcelona", chance: .576},
    {city: "Everton", chance: .3853}
];

array.sort((a,b) => (a.chance < b.chance) ? 1 : ((b.chance < a.chance) ? -1 : 0));

for (var item of array) {
    console.log(item);
}

Вам все равно придется отформатировать случайность в процентах, и это будет более удобно при вводе элемента на странице, но это даст вам начало.

0
MaKR 28 Май 2019 в 16:43