Всем привет, у меня есть метод удаления элементов в массиве, и он почему то работает не полностью, то есть он удаляет все элементы за исключением последнего, подскажите пожалуйста в чем тут может быть проблема? Код:
function deleteArray(arrayList){
var newarray;
for( i = 0; i <= arrayList.length; i ){
newarray = arrayList.splice(0,i)
}
alert(arrayList)
return newarray;
}
var arrayList = [2,4,6,7,8,9,10];
alert(arrayList);
console.log(arrayList)
deleteArray(arrayList);
console.log(arrayList)
alert(arrayList);
Привет, ну тут у тебя не правильно используется немного метод splice, если уже splice используете то что бы всё удалило надо сделать так:
function deleteArray(arrayList){
var newarray;
for( i = 0; i <= arrayList.length; i ){
newarray = arrayList.splice(i)
}
return newarray;
}
var arrayList = [2,4,6,7,8,9,10];
alert(arrayList);
deleteArray(arrayList);
alert(arrayList);
Но это тоже не корректное использование, так как этот метод в цикле будет удалять по сути по одному элементу массива, а когда туда передается два параметра то он удаляет с определенного до i, то есть можно просто изначально задать спектр элементов которые нужно удалить и просто применить этот метод, вот так:
function deleteArray(arrayList, a, b){
arrayList = arrayList.splice(a, b)
}
var arrayList = [2,4,6,7,8,9,10];
alert(arrayList);
deleteArray(arrayList, 0, arrayList.length);
alert(arrayList);
То есть метод максимально простой, принимает три значения и работает как надо, если надо удалить весь массив то мы просто указываем какой массив, откуда (с нулевой позиции то есть с начала массива) и до куда, до конца массива (arrayList.lenght).