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