У меня есть несколько переменных. Первая переменная всегда содержит название футбольного клуба, а следующая — вероятность гола в процентах.
Пример:
a = "Man City", b=45.55%, c = "Barcelona", d=57.6%, e = "Everton", f=38.53%;
и др.
Мне нужно сравнить шансы на гол у всех команд, и отсортировать их по убыванию, с указанием какой команде принадлежит тот или иной шанс.
Когда я использую команду тревога(), я хочу, чтобы вывод был похож на:
1.Barcelona: Chance 57.6%
2.Man City: Chance 45.55%
3.Everton: Chance 38.53%
Изначально все эти значения были получены командой «Извлечь» из iMacros. Это просто последовательные выдержки.
Эти данные лучше структурировать как массив объектов, и ваша жизнь будет намного проще с консолью 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.info(item);
}
Вам все равно придется отформатировать вероятность в процентах, и это было бы более удобно для использования в элементе на странице, но это даст вам начало.
Может быть более оптимальный способ сделать это, но вот решение, которое я использовал:
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>'
)});
Что связывает переменную имени команды с соответствующим шансом забить гол? Содержатся ли они вместе в объекте или, может быть, в параллельном массиве? Если бы все они были отдельными, было бы невозможно сказать, какой процент соответствует какой команде.