Как преобразовать строковый параметр в атрибут переменной TypeScript Angular

У меня есть эти 2 метода:

changeStartTime(event, id) {
    if (event.hour >= 10 && event.minute >= 10) {
      this.priceRules[id-1].startTime = event.hour+":"+event.minute;
    }
    else if (event.hour >= 10 && event.minute < 10) {
      this.priceRules[id-1].startTime = event.hour+":0"+event.minute;
    }
    else {
      this.priceRules[id-1].startTime = "0"+event.hour+":0"+event.minute;
    }
  }

  changeEndTime(event, id) {
    if (event.hour >= 10 && event.minute >= 10) {
      this.priceRules[id-1].endTime = event.hour+":"+event.minute;
    }
    else if (event.hour >= 10 && event.minute < 10) {
      this.priceRules[id-1].endTime = event.hour+":0"+event.minute;
    }
    else {
      this.priceRules[id-1].endTime = "0"+event.hour+":0"+event.minute;
    }
  }

Как видите, они очень и очень похожи, единственное, что меняется, это startTime и endTime. Это плохая манера разработчика, поэтому мне нужен только один метод с третьим параметром (может быть, строкой?), но я не знаю, как это сделать. Спасибо

this.priceRules[id-1]["typeTime"] ? Вы пробовали, вы можете использовать это обозначение объекта.

super cool 22.05.2019 12:23
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
1
234
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

changeTime(event, id, type) {
  if (event.hour >= 10 && event.minute >= 10) {
    this.priceRules[id-1][type] = event.hour+":"+event.minute;
  }
  else if (event.hour >= 10 && event.minute < 10) {
    this.priceRules[id-1][type] = event.hour+":0"+event.minute;
  }
  else {
    this.priceRules[id-1][type] = "0"+event.hour+":0"+event.minute;
  }
}

Где 'тип' должен быть 'время начала' или 'время окончания'.

Ответ принят как подходящий

Следуйте этому синтаксису:

this.priceRules[id-1]['startTime']

Вместо этого:

this.priceRules[id-1].startTime

то есть

Здесь вы можете передать «startTime» и «endTime» в качестве аргумента функции changeTime.

changeTime(event, id, key) {
    if (event.hour >= 10 && event.minute >= 10) {
      this.priceRules[id-1][key] = event.hour+":"+event.minute;
    }
    else if (event.hour >= 10 && event.minute < 10) {
      this.priceRules[id-1][key] = event.hour+":0"+event.minute;
    }
    else {
      this.priceRules[id-1][key] = "0"+event.hour+":0"+event.minute;
    }
  }

Другие вопросы по теме