Рубрики
Без рубрики

Мое первое оно раздражающее открытие в JavaScript

Поэтому я начал свой первый маленький проект программирования, простой игра памяти. С помощью проб и ошибок я … помечен JavaScript, начинающими, программированием.

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

Я быстро понял для некоторых функций, которые мне нужно сбросить свой Gameboard другим способом, чем просто обновлять веб-сайт, а не обстоятельную сделку. Я сделал другую функцию сброса, и она вроде сработала … Есть две карты карты, которые он передает в начале каждой игры, но каждый или два сбрасываются, она перестанет работать. Я консоль. И в конечном итоге я обнаружил, что мои латины для палубы карт отображаются пустыми либо первым или вторым сбросом. Почему?

Я играл как солидный 10 часов Растите более разочарованные поиск этой ошибки. А потом свет в конце туннеля я нашел что-то случайное на стек, который вызвал небольшую идею. Может ли изменения, сделанные для моего второго массива, влияют на мой оригинальный массив. Спойлер: Да, это сделал.

Я не имел абсолютно никакой идеи, что это происходит:

   const array1 = [1, 2, 3, 4];
   let array2 = [];

   array2 = array1;
   array2.push(5)

   console.log(array1); // Output: 1, 2, 3, 4, 5
   console.log(array2); // Output: 1, 2, 3, 4, 5

Я подумал, когда я нажимаю в Array2, только Array2 получает новое значение, я должен был знать лучше, чем просто предположить …

Поэтому я добавил функцию карты, чтобы дать значения второму массиву. (У меня были сомнения, это будет работать с моей удачей за последние 10 часов.)

I Console.logged мои массивы и радостный случай! Он сбрасывается должным образом каждый раз. Этот эмоциональный роликовый уголок жучка был окончательно над! Я мог бы даже пролить слезы в облегчении.

      const array1 = [1, 2, 3, 4];
      let array2 = [];

      array2 = array1.map((num) => { return num; });
      array2.push(5);

      console.log(array1); // Output: 1, 2, 3, 4
      console.log(array2); // Output: 1, 2, 3, 4, 5

Кстати, это не делает это с регулярными переменными, которые я заметил.

Я играл в 5 раз, чтобы убедиться, что сброс на самом деле будет работать каждый раз. Но теперь я могу наконец спать ночью.

Если кто-то хочет проверить свой код Newbie здесь: https://github.com/1Tolv2/Mushroom-Memory

Придавать Если кто-то знает, почему JavaScript делает это, если есть веская причина, пожалуйста, дайте мне знать, потому что я не понимаю.

Оригинал: “https://dev.to/1tolv2/my-first-reeeeally-annoying-discovery-i-javascript-4g19”