我有一個練習,我從物件建構式中創建了幾個物件,所有物件都具有 ID 屬性。
練習的第一部分包括將每個物件配對,比較它們的markAv屬性并列印出更大的那個。
[ a vs b => b 獲勝]
他們建議通過使用 ID 屬性來做到這一點,但我不知道該怎么做......所以我嘗試了一種解決方法,正如您將在下面的代碼中看到的那樣。
然而,練習的第二部分希望我做同樣的事情,但這次是隨機創建對。在這里,我嘗試通過生成與 ID 匹配的亂數來使用 ID 屬性,但我不知道如何構造代碼以使其作業。
第二部分的輸出應該與上面相同,唯一的區別是現在配對是隨機生成的。
我為第二部分添加了部分解決方案,部分是因為它有時會引發我無法識別的錯誤。但是,我想我已經接近獲得我想要的輸出了。
如果有人能提示我破解下面的代碼并使其正常作業,我將不勝感激,因為我真的很想了解如何做到這一點。
class Avenger {
constructor(name, classRoom, city, job, studies, markAv, id) {
this.name = name;
this.classRoom = classRoom;
this.city = city;
this.job = job;
this.studies = studies;
this.markAv = markAv;
this.id = id;
}
heroList() {
return this.name " " this.classRoom " " this.city " " this.job " " this.studies " " this.markAv " " this.id
}
}
const tonyStark = new Avenger("Tony Stark", "XI", "NYC", "Ingeneer", "MIT", 10, 1)
const hulk = new Avenger("Hulk", "X", "Toledo", "Destroyer", "Scientific", 7, 2)
const daredevil = new Avenger("Daredevil", "IX", "NYC", "Lawyer", "Fighter", 2, 3)
const magneto = new Avenger("Magneto", "XXI", "SBD", "Unemployed", "Driver", 5, 4)
const unknown = new Avenger("Unknown", "L", "CDY", "President", "Clerck", 17, 5)
const xavi = new Avenger("Xavi", "XX", "BCN", "Analist", "Calle", 7, 6)
let heroes = [daredevil, hulk, tonyStark, magneto, unknown, xavi]
function getPairs(array) {
function getPairs(array) {
for (let i = 0; i < array.length; i = 2) {
if (array[i].markAv < array[i 1].markAv) {
console.log(array[i].name " vs " array[i 1].name " " array[i 1].name " Wins")
} else if (array[i].markAv > array[i 1].markAv) {
console.log(array[i].name " vs " array[i 1].name " " array[i].name " Wins")
}
}
}
getPairs(heroes)
///
function randomAv(array) {
let result = []
let hero1 = heroes[Math.floor(Math.random() * 6) 1]
for(let i = 0; i<array.length; i ){
if (array[i].markAv <= hero1.markAv && array[i].id != hero1.id) {
result.push(console.log(array[i].name " vs " hero1.name " " array[i].name " Wins"))
} else if(array[i].markAv >= hero1.markAv && array[i].id != hero1.id) {
result.push(console.log(array[i].name " vs " hero1.name " " hero1.name " Wins"))
}
}
console.log(result)
}
uj5u.com熱心網友回復:
首先打亂陣列:
let heroes = [daredevil, hulk, tonyStark, magneto, unknown, xavi]
let heroes_shuffle = heroes.sort((a, b) => 0.5 - Math.random())
然后照常做
getPairs(heroes_shuffle )
所有可能的組合:
function allPairs(heroes) {
while (heroes) {
[hero, ...heroes] = heroes
for (enemy of heroes) {
if (hero.markAv === enemy.markAv)
console.log(hero.name " vs " enemy.name ": draw")
else if (hero.markAv < enemy.markAv)
console.log(hero.name " vs " enemy.name ": " enemy.name " Wins")
else
console.log(hero.name " vs " enemy.name ": " hero.name " Wins")
}
}
}
uj5u.com熱心網友回復:
您可以從這里獲取功能https://stackoverflow.com/a/7228322/1117736
并做這樣的事情:
class Avenger {
constructor(name, classRoom, city, job, studies, markAv, id) {
this.name = name;
this.classRoom = classRoom;
this.city = city;
this.job = job;
this.studies = studies;
this.markAv = markAv;
this.id = id;
}
heroList() {
return this.name " " this.classRoom " " this.city " " this.job " " this.studies " " this.markAv " " this.id
}
}
const tonyStark = new Avenger("Tony Stark", "XI", "NYC", "Ingeneer", "MIT", 10, 1)
const hulk = new Avenger("Hulk", "X", "Toledo", "Destroyer", "Scientific", 7, 2)
const daredevil = new Avenger("Daredevil", "IX", "NYC", "Lawyer", "Fighter", 2, 3)
const magneto = new Avenger("Magneto", "XXI", "SBD", "Unemployed", "Driver", 5, 4)
const unknown = new Avenger("Unknown", "L", "CDY", "President", "Clerck", 17, 5)
const xavi = new Avenger("Xavi", "XX", "BCN", "Analist", "Calle", 7, 6)
let heroes = [daredevil, hulk, tonyStark, magneto, unknown, xavi]
function randomIntFromInterval(min, max) { // min and max included
return Math.floor(Math.random() * (max - min 1) min)
}
let hero1 = heroes[randomIntFromInterval(1, 6)]
let hero2 = heroes[randomIntFromInterval(1, 6)]
if (hero1.markAv < hero2.markAv) {
console.log(hero1.name " vs " hero2.name " " hero1.name " Wins")
} else if(hero1.markAv > hero2.markAv) {
console.log(hero1.name " vs " hero2.name " " hero2.name " Wins")
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/485970.html
標籤:javascript 数组 目的 比较
上一篇:`{SomeClass().func()}()`語法在Swift宣告中是什么意思?[復制]
下一篇:使用國家API通過XMLHTTPRequest獲取國家資料gettting[objectobject]error
