Удалить элементы из ассоциативного массива в Javascript - PullRequest
0 голосов
/ 27 августа 2018

У меня есть ассоциативный массив в моем JS, который я хочу передать своему Select.

Это стандартные доступные часы, которые обновят мои доступные часы (при загрузке страницы);

var standardhours = {
  "09" : '9AM',
  "10" : '10AM',
  "11" : '11AM',
  "12" : 'Noon',
  "13" : '1PM',
  "14" : '2PM',
  "15" : '3PM',
  "16" : '4PM',
  "17" : '5PM',
  "18" : '6PM',
  "19" : '7PM'
};

Эти доступные часы, которые я хочу кормить своим выбором.

var availablehours = {
    "09" : '9AM',
    "10" : '10AM',
    "11" : '11AM',
    "12" : 'Noon',
    "13" : '1PM',
    "14" : '2PM',
    "15" : '3PM',
    "16" : '4PM',
    "17" : '5PM',
    "18" : '6PM',
    "19" : '7PM'
};

Это моя динамическая переменная, которая изменяется в зависимости от изменений базы данных.Это часы, которые кто-то уже занял.

takenHours = {"09", "18"};

Я хочу удалить takeHours из ассоциативного массива availablehours.Не уверен как.У меня мыслительный процесс выглядит очень ручным и упрощенным.

1 Ответ

0 голосов
/ 27 августа 2018

Если я правильно понимаю, тогда вы сможете достичь такого типа мутации availablehours с помощью оператора delete, как показано:

var availablehours = {
  "09": '9AM',
  "10": '10AM',
  "11": '11AM',
  "12": 'Noon',
  "13": '1PM',
  "14": '2PM',
  "15": '3PM',
  "16": '4PM',
  "17": '5PM',
  "18": '6PM',
  "19": '7PM'
};
console.log(availablehours);

var takenHours = ["09", "18"];

// Iterate through the hours to be removed
for (var takenHour of takenHours) {

  // For each hour key, use the delete operator to remove 
  // the key/value pair from availablehours completlty
  delete availablehours[takenHour]
}

// availablehours will no longer contain "09" or "18" key/value pairs
console.log(availablehours);
...