#javascript #html #dictionary #local-storage #ranking-functions
#язык JavaScript #HTML #словарь #локальное хранилище #ранжирование-функции
Вопрос:
for(var i=0, len=localStorage.length; ilt;len; i ) { var key = localStorage.key(i); var value = JSON.parse(localStorage.getItem(key)); console.log(key " =gt; " value); let users = value.username; let scores = value.score; let names = value.name;
Изображение локального хранилища:
Приведенный выше код показывает, как я получаю доступ к значениям локального хранилища, например, value.score (переменные оценки) даст оценку пользователям. на другой веб-странице у меня есть таблица лидеров, и я хочу ранжировать результаты, например, пользователь имеет в виду, что он занимает 1-е место, а Джеймс-2-е, так как у него более низкий балл. я также хотел бы сделать это для всех новых пользователей, а также сохранить 3 лучших результата для других целей на странице спасибо, Как бы я это сделал?
Комментарии:
1. Зачем вы создаете новые ключи? Разве у нас не может быть одного значения, которое содержит все значения?
2. Я использую ключи для значений, которые нужно поместить в мой HTML-файл для таблицы
Ответ №1:
Хорошо , ребята, мне удалось это выяснить, поэтому я сохранил все в словаре, используя пары ключ-значение, затем отсортировал рейтинг с помощью цикла и перенес ранг значения в каждый словарь, а затем, чтобы вызвать его, я использовал цикл for для перебора основного массива.
players=[]; for(var i=0, len=localStorage.length; ilt;len; i ) { var key = localStorage.key(i); var value = JSON.parse(localStorage.getItem(key)); console.log(key " =gt; " value); players.push({ username: value.username, score: value.score, name: value.name }); players.sort(function(a, b){ return b.score - a.score; }); var rank = 1; for (var i = 0; i lt; players.length; i ) { // increase rank only if current score less than previous if (i gt; 0 amp;amp; players[i].score lt; players[i - 1].score) { rank ; } players[i].rank = rank; } } for(var i=0; ilt;players.length; i ) { let users = players[i].username; let scores = players[i].score; let names = players[i].name; let ranks = players[i].rank;