javascript заменить массив чисел массивом ключей

У меня случайная оценка (число) от 0 до 72.

У каждого числа очков есть установленный мною ключевой номер. (Смотри ниже)

Мне нужно получить номер ключа с помощью функции.

Пример:

function scoreToKey(score) {
     // the mystery code goes here
     return PERCENTAGE;
}

scoreToKey(100);  // needs to return 100
scoreToKey(72);   // needs to return 100
scoreToKey(50);   // needs to return 39
scoreToKey(44);   // needs to return 4
scoreToKey(29);   // needs to return -92
scoreToKey(12);   // needs to return -100
scoreToKey(0);    // needs to return -100

Я полагаю, вам нужно как-то использовать массивы, но я не могу понять, как это сделать.

Это мои пары "ключ-значение":

score | key
72  100
71  99
70  98
69  97
68  96
67  95
66  94
65  92
64  90
63  87
62  84
61  81
60  78
59  75
58  72
57  69
56  65
55  61
54  57
53  53
52  49
51  44
50  39
49  34
48  28
47  22
46  16
45  10
44  4
43  ‎-2
42  ‎-8
41  ‎-16
40  ‎-24
39  ‎-32
38  ‎-40
37  48
36  56
35  ‎-64
34  ‎-70
33  ‎-76
32  ‎-82
31  ‎-68
30  ‎-90
29  ‎-92
28  ‎-94
27  ‎-96
26  ‎-98
25  ‎-99
1-24    ‎-100

Я был бы очень признателен за вашу помощь, я не могу понять этого, и я также не знаю, что действительно искать.

Кстати, ваш код может быть на ES6, я не против :) Заранее спасибо


person Elron    schedule 05.06.2018    source источник
comment
These are my key values: Это массив, с которым вам нужно работать, или объект, или просто текст, или что?   -  person CertainPerformance    schedule 05.06.2018
comment
Привет, спасибо за проявленный интерес. Мне нужен код javascript. массивы / объекты были бы хорошими решениями.   -  person Elron    schedule 05.06.2018
comment
@alfasin Это похоже, но это не совсем то, что мне нужно   -  person Elron    schedule 05.06.2018
comment
@Elron: Если это не так, пожалуйста, поясните, чем он отличается   -  person Isaac    schedule 05.06.2018
comment
@CertainPerformance Я имею в виду, эти 2 списка могут быть преобразованы в массивы или объекты, на самом деле это не имеет значения   -  person Elron    schedule 05.06.2018
comment
@Isaac Привет, Исаак, как вы можете видеть в моих ключевых значениях, если число 24 или меньше, мне нужно, чтобы оно всегда возвращало -100. То же самое для больших чисел, все, что выше 72+, должно возвращать 100.   -  person Elron    schedule 05.06.2018
comment
Похоже, ваша единственная актуальная проблема здесь - это потратить время на то, чтобы записать значения в формате Javascript и поместить их в свой код.   -  person CertainPerformance    schedule 05.06.2018


Ответы (1)


Первое, что вам нужно сделать - это как вы храните ключи и партитуру?

То, как я бы это сделал, было бы при генерации ключей и партитуры.

function addScore(score, key){
  scores[score] = key;
}

тогда все, что вам нужно сделать, чтобы получить данные, это

function getScore(score){
   return scores[scores];
}

оценки были бы объектом и выглядели бы так

{
   72:100
   71:99
   70:98
   69:97
   68:96
   67:95
   66:94
   65:92
   64:90
}
person Chris    schedule 05.06.2018
comment
Красивый!! Настолько просто и аккуратно, что я не знала, что можно так хранить числа. Спасибо! - person Elron; 05.06.2018
comment
@Elron, как только он заработает, отметьте его как принятый ответ :) - person Chris; 05.06.2018
comment
@Elron: Это точно показано как ответ в ссылке, которой я вам поделился, и вы сказали, что это другое. Теперь вы говорите, что не знали, можно ли так хранить числа. Ржу не могу. - person Isaac; 05.06.2018
comment
Привет, Иссак, это не совсем то же самое - я не понимал, что можно установить числа в качестве ключей и присвоить им значение чисел. Это то, что мне было нужно, и это не было показано в качестве примеров в повторяющемся ответе. Но важно то, что проблема решена. Спасибо - person Elron; 09.06.2018