iBird Rose, на вашем скриншоте результат выполнения функции, на вход которой покупают 2, с виду, одинаковых массива. В этом и вопрос, почему результат разный
iBird Rose, да и к тому же, в консоли массив считается после раскрытия, а не в строке с console.warn, так что не важно куда вставлять т.к. он может потом изменится, только ссылка копируется.
У вас в array1 не массив массивов, а массив ссылок на массив (одинаковой). array1[0] === array1[1] выведет true.
UPD: т.е. это не одинаковые массивы. При изменении элементов array1[0] будет меняться array1[1], поэтому такие баги.
Даниил Попов, не думаю, при передаче аргумента, используется один объект, через функцию самое простое решение (с map). И любое другое решение будет не короче вашего с map. Только если написать свою реализацию fill в прототипе Array, но такое решение будет еще длиннее, уж лучше решение с map обернуть в функцию.