我正在學習JS,我正在製作應用程序以查找高爾夫遊戲中每個洞的獲勝者。較少擊球的球員是該洞的贏家,但有時候不止一名球員可以用相同的數字來打洞,所以,爲了找到洞的勝者,我需要評估來自並列球員的杆數下一個洞並打破領帶,如果領帶持續存在,我需要評估下一個洞等等。休息領帶功能js
foo函數應該返回一個數組,其索引,位置或名稱來自洞中的勝者(如果領帶不可能中斷)。
這裏是我的代碼:
var players = [
"Jug 1",
"Jug 2",
"Jug 3",
"Jug 4"
];
var arrHoyos = [
[4, 3, 3, 4],
[4, 5, 4, 5],
[4, 4, 5, 6]
];
function foo(array) {
var arrWinners = [];
//arrHoyos
for (var i = 0, len = array.length; i < len; i++) {
var arr = array[i];
var arr2 = array[(i + 1) % array.length];
var pos = 0;
var min = 0;
var tie = false;
var temp = [];
var temp2 = [];
min = Math.min.apply(null, arr);
//arr
for (var j = 0, len2 = arr.length; j < len2; j++) {
if (min == arr[j]) {
temp.push(arr.indexOf(min, j));
}
}
if (temp.length > 1) {
tie = true;
var counter = 0;
while (tie == true) {
for (var count = 0; count < temp.length; count++) {
pos = temp[count];
temp2[count] = arr2[pos];
}
min = Math.min.apply(null, temp2);
for (var count2 = 0; count2 < temp.length; count2++) {
if (temp2[count2] != min) {
temp.slice(count2, 1);
}
}
if (temp.length == 1 || counter == array.length) {
tie = false;
}
counter++;
}
}
arrWinners[i] = players[temp[0]];
console.log(temp, temp2);
console.log(arrWinners[i]);
}
}
foo(arrHoyos);
Chrome的控制檯結果:
[1, 2] [5, 4]
Jug 2
[0, 2] [4, 5]
Jug 1
[0, 1] [4, 3]
Jug 1
現在的代碼有什麼問題? –
我得到這個結果: – Devsalad
這是不完整的,我只是得到每個洞最好成績的位置(索引)。我需要連接這些位置的值(temp)以及下一個洞(數組)中這些索引的值,以便只用一個索引來打破實際的綁定和左邊的temp數組。 – Devsalad