Хорошо, ребята, может быть, я опаздываю на вечеринку, но есть несколько относительно простых предположений, которые я сделал относительно Javascript, когда практиковал алгоритмы. Мне не нравится, когда я делаю что-то из-за повторения, поэтому я проверил свои предположения, и то, что я узнал, станет темой этого сообщения в блоге.

  1. Цикл for может состоять из 4 разных частей. Не все они обязательны.

  • begin - , где вы объявляете переменную для инициализации в начале цикла for ( let idx = 0;). Знаете ли вы, что i - это индекс, а j - это просто буква, которая выглядит как я?
  • условие - , которое, если true позволяет циклу затем выполнить тело, а если false завершает циклы (idx ‹arr.length;).
  • body - - это место, где вы пишете код, который будет запускаться, когда условие оценивается как true (sum = sum + arr [idx];).
  • шаг - , который выполняется после каждой итерации тела (idx + = 1).

Итак, вы похожи на крутого Кори, так что вы изучали алгоритмы, не используя циклы for? Как развратно. Нет, я не обходился без циклов for. Я только что предположил, что значение idx на начальной итерации этого цикла было 0 вместо 1, потому что именно так оно читалось. Предположение оказалось неверным, когда шаг переместился в тело. Прочитав больше о циклах for здесь, я понял, что на самом деле происходит то, что шаг является последней частью for цикл для запуска.

2. Второй шаг можно добавить в цикл for.

Это достаточно просто. Каждая итерация будет добавлять дополнительную единицу к переменной num, а также увеличивать индекс arr и добавлять это index значение num. В результате num возвращает сумму всех чисел от 1 до 10 (55) плюс один для каждой итерации ( 10) всего 65.

3. Итераторы массивов могут принимать несколько аргументов, как показано здесь для forEach () и здесь для map () (есть много других итераторов массива, которые делают то же самое).

Я узнал об этом на техническом собеседовании, где от меня потребовали рефакторинга одного из моих решений для использования поиска объектов. Этот метод обеспечивает простой способ сопоставить ваш массив с объектом, используя индекс этого массива в качестве ключей вашего объекта.

4. Объекты Javascript представляют свои ключи по порядку.

Несмотря на то, что объекты Javascript не индексируются, они все же пытаются представить свои ключи в логической последовательности. Хотя на это не стоит полагаться, это очень интересно. Вы можете прочитать больше об этом здесь".

5. Для… в и Для… итераторов Javascript.

Я считаю, что синтаксис for..in и for… of более аккуратный, чем for, который выполняет ту же задачу. В простых сценариях я буду прибегать к ним, чтобы сделать мой код более читаемым, хотя следует отметить, что они не рекомендуются по сравнению с их итеративными аналогами, такими как forEach () или просто зацикливанием. Вы можете узнать больше о для… в здесь и для… из здесь. И последнее. Обратите внимание на различия между выводом для… в и для… из на тот же массив "праздники". Это сбивало меня с толку в прошлом и является одной из причин, по которой рекомендуются альтернативы.

Вот некоторые из интересных вещей, которые я узнал во время ежедневного использования Javascript. Javascript иногда может быть довольно необычным, и в большинстве случаев есть функции, о которых вы можете совершенно не знать, просто потому, что у вас никогда не возникало необходимости использовать эту функцию, или вы просто создали обходной путь, который не был настолько плох, чтобы заставить кого-то предложить неизвестная функция в качестве альтернативы ... пока вы не дойдете до технического собеседования, и они сделают предложение, которое немного поразит вас. Всегда есть самые простые вещи.

Я надеюсь, что, прочитав эту статью, я помогу вам обойти те же небольшие ловушки, на которые я потратил часы (для… в v. для … Of), а также обеспечивают некоторую эффективность для задач, которые вы уже реализовали (полезно знать, как эффективно реализовать поиск объектов в функции).

Как всегда, если вы видите какие-либо исправления, которые я могу внести или предложения, которые вы хотели бы отправить мне, пожалуйста, свяжитесь с LinkedIn или в комментариях. Спасибо всем за ваше время.