new Date в цикле повторяется значение

267
03 декабря 2017, 14:51
 showFinalScore: function (score, names) {
    var final = "<p>FINAL SCORE: ";
    for (var i in score) {
        if (score.hasOwnProperty(i)) {
            var key = Date.now();
            var obj = {'name': names[i], 'points':score[i]};
            localStorage.setItem(key, JSON.stringify(obj));
        }
    }
    final += "</p>";
    this.element.innerHTML += final;
  }

Функция динамически создает localStorage. Ключ каждый раз создается при помощи даты. Но иногда проскальзывает одинаковая дата, и ключ перезатирается. Как это можно исправить???
Я надеюсь я доходчиво написал )
new Date().getTime() я тоже пробовал))

Answer 1

Можно делать проверку на наличие такого ключа в хранилище и переопределять на новый, если текущий занят.

while (localStorage.hasOwnProperty(key)) {
    key = Date.now();
}
Answer 2

Можно инкрементировать в конец даты счётчик:

var keyStart = ""+Date.now();
var key = keyStart;
for(var i=1;;i++) {
    if(localStorage.hasOwnProperty(key)) {
         key = keyStart +"["+i+"]";
    }
    else {
         localStorage.setItem(key,value);
         break;
    }
}
READ ALSO
JS выбрать из строки цифры и буквы

JS выбрать из строки цифры и буквы

Как средствами JS на стороне клиента можно из переменно выбрать только 0-9,a-z,A-Z ?

299
Почему некорректно работает watch?

Почему некорректно работает watch?

Есть массив с хешами, внутри которых есть еще хешВыглядит это примерно так:

231
Откуда можно получить курс ethereum в json формате?

Откуда можно получить курс ethereum в json формате?

Собираюсь отправлять ajax запросЛучше всего буду рад официальным источникам

266
Загрузка zip rar файлов с ajax на сервер

Загрузка zip rar файлов с ajax на сервер

Как загрузить zip rar файлы с ajax на сервер?

267