Javascript Splice работает неправильно

когда я делаю это:

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 " ушел, и я получаю неопределенное в конце.

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

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". Что происходит?

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);