我想要在javascript中獲得給定系列的相反順序的編號。如果我有以下幾大系列:獲取給定系列的相反順序的編號
[1,2,2,2,5,5,7,8,8,10]
那麼,如果輸入的是數字8
輸出應該是2
,因爲:
1 = 10
2 = 7
2 = 7
2 = 7
5 = 5
5 = 5
7 = 4
[8 = 2]
[8 = 2]
10 = 1
//--> [1 , 2,3,4, 5,6, 7, 8,9, 10]
--> [1 , 2,2,2, 5,5, 7, 8,8, 10]
[10, 7,7,7, 5,5, 4, 2,2, 1 ] <-- // ==> [1,2,2,4,5,5,7,7,7,10]
這是我迄今所做的:
function getReverseNumber(arr, num)
{
var newArr = new Array(arr.length);
var temp;
var counter = 1;
for(var i = arr.length; i > 0; i--)
{
if(temp === arr[i])
{
newArr[arr.length - i] = counter;
continue;
}
newArr[arr.length - i] = counter;
temp = arr[i];
counter++;
}
return newArr[num - 1];
}
但它確實沒有按預期工作:
getReverseNumber(new Array(1,2,2,2,5,5,7,8,8,10), 8) // returns 5 not 2
我的功能出了什麼問題?
什麼是所期望的輸出,如果該輸入是2,其中兩個7和8相匹配? – JYelton
如果輸入是「2」,那麼輸出是「7」 –
你的解釋讓我困惑,爲什麼如果輸入的數字是2就是答案總是7?如果你得到相反的順序,那麼2將分別對應於[8,8,7]。你有錯字嗎? –