Показать сообщение отдельно
  #26 (permalink)  
Старый 23.07.2015, 19:55
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Сообщение от Lemme
Потому, что тут циклы работают с цифрами.
Это отмазка. Вы автор кода и вы создаете формат, можете написать так чтобы не было цифр и были массивы.

Сообщение от Lemme
так?
for (let key in sessionStorage){
    if (/^Data__\d+$/.test(key)){
        sessionStorage.removeItem(key);
    }
}
Например, или так:
var reg = /^Data__\d+$/;
Object.keys(sessionStorage).forEach((key) => {
   if (reg.test(key)) {
      sessionStorage.removeItem(key);
   }
});

Вынесение объявления рег выражения позволит не создавать его при итерации каждого имени.

Методы не просто по возможности должны носить описательный характер. Всякому дроблению должен быть конец
Не знаю правильно или нет, но мне очень нравится разделять методы которые должны выполнять логику от тех что несут реализацию. И по возможности их не мешать.

Ну на примере того же setPage (мне нравится typescript пример будет на нем)

public setPage(index:number):void {
   if (this.hasPage(index)) {
      this.changeCurrentPage(index);
      this.render();
   }
}

public render():void {
   this.clear();
   this.createBody();
}

private changeCurrentPage(index:number):void {
   this.currentPage = index;
}


Конечно многие скажут что удалять тело таблицы и потом его создавать - накладная операция, а таблица должна быть быстра, так что тут это не совсем удачный пример, НО метод clear - нужная штука, он может быть переиспользован в удалении таблице или изменении данных от сервера и прочее, и отдельный метод на создание данных тоже нужен. дробление методов позволяет увеличить переиспользуемость написанного кода.

Последний раз редактировалось tsigel, 23.07.2015 в 20:26.
Ответить с цитированием