Ладно, сегодня я немного расстроился, проверив сертификат JavaScript от freeCodeCamp.org. Наткнувшись на один из примеров, я попытался решить проблему в том порядке, в котором были даны рекомендации. Мне показалось целесообразным начать с оператора Not (!) и идти дальше.

freeCodeCamp это не понравилось (вставьте закатывание глаз).

Жаль, что я не спрятал свою первую попытку решить проблему, чтобы я мог включить ее здесь. Я, однако, этого не сделал. Однако я скопировал свое окончательное решение, которое я изменил из данного решения, которое было гораздо более элегантным, чем моя первоначальная попытка решения, но оставило у меня некоторые вопросы.

Вот решение, предоставленное freeCodeCamp:

function updateRecords(id, prop, value) {
  if (value === "") {
    delete collection[id][prop]; 
  } else if (prop === "tracks") {
    collection[id][prop] = collection[id][prop] || []; collection[id][prop].push(value);
  } else {
    collection[id][prop] = value;
  } return collection;
}

Чего я здесь не понимаю, так это того, как используется оператор Or (||). Объяснение изначально было очень кратким и, казалось, было привязано к требованиям кейса, а не к части исполняемого кода. Не зная ничего лучшего и желая продолжить, я просто скопировал эту часть в свой собственный код:

function updateRecords(id, prop, value) {
  switch (true) {
    case value === "":
    delete collection[id][prop];
    break;
    case prop === "tracks":
    collection[id][prop] = collection[id][prop] || [];
    collection[id][prop].push(value);
    break;
    default: collection[id][prop] = value; 
    break; 
  }
  return collection;
}

Это то, чем я буду заниматься до конца дня. Мне не нравится учиться чему-то наполовину, и я чувствую себя немного обманутым из-за того, что это не было объяснено лучше. К счастью, существует множество ресурсов для изучения JavaScript; Я надеюсь, что один из этих бесчисленных ресурсов предоставит информацию, которая поможет мне понять, почему оператор Or использовался таким образом и как он работает. Я обновлю этот пост соответственно.

3/100

Первоначально опубликовано на https://blog.nonsensetwice.co 7 ноября 2019 г.