입력 행에서 새로운 문자열 행 배열을 만들어야합니다. 입력 배열에는 국가 이름과 스코어가 포함됩니다. 내 목표는 국가가 나타날 계급 인 하나의 값을 더 추가하여이 배열을 다시 만드는 것입니다. 아래의 나의 해골 코드를 확인하십시오.점수에 의한 문자열 행 배열의 순위 지정
위의 예를 들어<!DOCTYPE html>
<html><head><meta charset="UTF-8"></head>
<body>
<button type="button" onclick="myRankFunction(['AFG\t3,416', 'AUS\t1,414', 'BRA\t2,073', 'JPN\t1,316'])">Rank</button>
<script>
/*
* The function must return a new rowlist in the format:
* Rank[TAB]Country[TAB]Score
* - notice that the input rowlist DOESN'T contain the "Rank" part in the begining of the row;
* - Rank is an integer number which represents the country's position in the ranking;
* - Score is a float number; more Score means better Rank.
*/
function myRankFunction(rowlist)
{
var newrowlist = [];
var s1 = [], s2 = [];
for(i = 0; i < rowlist.length; i++)
{
s1 = rowlist[i].split("\t");
for(j = 0; j < rowlist.length; j++)
{
// ignores the current row
if(i == j)
{
continue;
}
s2 = rowlist[j].split("\t");
if(s1[1] > s2[1])
{
}
else if(s1[1] < s2[1])
{
}
else
{
}
}
}
return newrowlist;
}
</script>
, 함수는 반환해야합니다 :
['1[TAB]AFG[TAB]3,416',
'2[TAB]BRA[TAB]2,073',
'3[TAB]AUS[TAB]1,414',
'4[TAB]JPN[TAB]1,316']
왜 그냥 배열을 정렬 할 수 있습니까? 그런 다음 순위는 새로운 배열 인덱스 + 1입니다. – Barmar
우선, "지루함"은 도움을 청하고 일을 그만두는 것이 가난한 변명입니다. 둘째, 배열을 정렬하고 자체 인덱스를 순위로 사용합니다. 어딘가에서 순위를 표시하려면'index + 1'을 사용하십시오 [여기] (http://www.sorting-algorithms.com/)는 직접 작성하려는 경우 정렬에 대한 추가 읽기입니다. –
Barmar and PremierBromanov : 나는 점수를 정렬하려고했지만, 그것을 한 후에 정렬 된 점수를 기반으로 각 문자열 행을 재정렬하는 방법을 알지 못합니다. 일부 국가에서 동일한 점수를받을 수 있다고 말한 것을 잊었습니다. 이것은 또한 나에게 많은 것을 복잡하게했다. –