Подтвердить что ты не робот

Печать консоли Javascript не работает при назначении соединения массива для себя

Когда я это сделаю:

var testArray  = ["a","b","c"];
console.log(testArray);
console.log("size:" + testArray.length);

Я это напечатал в моей консоли:

["a", "b", "c"]
size:3 

Это хорошо. Но теперь, когда я начинаю сращивание с этим:

var testArray  = ["a","b","c"];
console.log(testArray);
console.log("size:" + testArray.length);
testArray = testArray.splice(0,1);

Это происходит в моей консоли:

["b", "c", undefined × 1]
size:3 

Итак, первый вопрос - почему это испортило мою печать массива, хотя сплайсинг был после печати? Размер отображается правильно, но "a" ушел, и я получаю undefined в конце.

Так что я хотел сделать, это удалить первый элемент в массиве. В основном сдвиг. Поэтому я делаю это:

var testArray  = ["a","b","c"];
console.log(testArray);
console.log("size:" + testArray.length);
testArray = testArray.splice(0,1);
console.log(testArray);
console.log("size:" + testArray.length);

И это то, что выводится:

["b", "c", undefined × 1]
size:3
["a"]
size:1 

Мало того, что размер уменьшился на 2, он удалил все, кроме "a". Что происходит?

4b9b3361

Ответ 1

Не назначайте testArray самому себе. Просто выполните:

var testArray  = ["a","b","c"];
console.log(testArray);
console.log("size:" + testArray.length);
testArray.splice(0,1);
console.log(testArray);
console.log("size:" + testArray.length);