Цель: проверить все элементы массива, если встречается "undefined", например array[3], то все последующие элементы должны переместиться на одну позицию влево, независимо, будут ли еще встречаться "undefined" и так по кругу, пока все элементы не будут числами, строками и т.п.
Но что-то идет не так... повторная проверка не даёт результатов, а нынешний код не работает так, как нужно.
Как мне исправить и может есть более лучшее решение?)
function clearArrayFromUndefined(arr){
if (arr[0] !== undefined) { //проверка на пустой массив
for (var j = 0; j < arr.length; j++) { //перебор свойств массива
var n = arr[j];
if (n === undefined) {
for (var k = (j + 1); k < arr.length; k++) {
arr[k - 1] = arr[k];
delete arr[k];
/*
for(var x = 0; x < arr.length; x++){ //повторный запуск проверки массива на undefined
if (arr[x] === undefined){
j = x;
}
}
*/
}
}
}
}
return arr;
}
var array = [];
array[0] = 0;
array[1] = 1;
array[3] = 3;
array[5] = 5;
array[8] = 8;
array[15] = 15;
array[20] = 20;
//array[50] = 50;
console.log(array);
clearArrayFromUndefined(array);
console.log(array);