Ладно, сегодня я немного расстроился, проверив сертификат 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 г.