JavaScript
Как только с конца массива обрезать все пустые элементы? var arr = [0,,2,,,];
[...arr].reduceRight((acc, value) => !acc.stop && !value? acc : ({ stop: true, values: [value, ..acc.values] }), { stop: false, values: [] }).values;
Алпамыс Абильдаев
Только с конца.
Какая разница с конца или не с конца?
var arr1 = [3,'8','',6,'','',5];
console.log(arr1);
var arr2 = arr1.filter(function(elem) {
return elem != ''
});
console.log(arr2)
>>>
Array(7) [ 3, "8", "", 6, "", "", 5 ]
Array(4) [ 3, "8", 6, 5 ]
var arr1 = [3,'8','',6,'','',5];
console.log(arr1);
var arr2 = arr1.filter(function(elem) {
return elem != ''
});
console.log(arr2)
>>>
Array(7) [ 3, "8", "", 6, "", "", 5 ]
Array(4) [ 3, "8", 6, 5 ]
Тоже без ГМО ))))
var arr = [0,,2,,,];
for( var i = arr.length - 1; i >= 0; i-- ){
if( arr[i] !== undefined ){ break; }
arr.pop();
}
P.s. но в массиве и не должно быть пустых элементов. Его смысл как-раз в том, чтобы это был удобный пронумерованный список. Иначе - можно использовать обычный объект.
var arr = [0,,2,,,];
for( var i = arr.length - 1; i >= 0; i-- ){
if( arr[i] !== undefined ){ break; }
arr.pop();
}
P.s. но в массиве и не должно быть пустых элементов. Его смысл как-раз в том, чтобы это был удобный пронумерованный список. Иначе - можно использовать обычный объект.
Сералы Абдиев
ток щас вспомнил про эти 4 метода, как вариант
как вариант без всяких ГМО и скрытых итераторов
var i = arr.length - 1;
var arr2 = Array();
for (; i >= 0; i--) if (arr[i] !== undefined) break;
for (; i >= 0; i--) arr2[i] = arr[i];
if (arr2.length > 0) arr = arr2; arr2 = undefined;
var i = arr.length - 1;
var arr2 = Array();
for (; i >= 0; i--) if (arr[i] !== undefined) break;
for (; i >= 0; i--) arr2[i] = arr[i];
if (arr2.length > 0) arr = arr2; arr2 = undefined;
Алексей Миги
>> Cannot set property '4' of undefined
Алпамыс Абильдаев
Да, там немного сложнова то (^_^)'
Алгоритм.
1. Пройтись циклом по всему массива.
2. Сравнить текущий элемент со значением undefined
т. к. пустые элементы в JS дают undefined.
3. При помощи метода splice объекта Array удалить пустой элемент.
Где i это текущий порядковый номер элемента в массиве, который нужно удалить.
1 это количество элементов которых нужно удалить.
В нашем случае удаляем по 1 элементу.
4. Конец можно радоваться и заварить себе роллтон.
Алгоритм не самый лучший т. к. он удаляет по 1 элементу.

1. Пройтись циклом по всему массива.
2. Сравнить текущий элемент со значением undefined
т. к. пустые элементы в JS дают undefined.
3. При помощи метода splice объекта Array удалить пустой элемент.
Где i это текущий порядковый номер элемента в массиве, который нужно удалить.
1 это количество элементов которых нужно удалить.
В нашем случае удаляем по 1 элементу.
4. Конец можно радоваться и заварить себе роллтон.
Алгоритм не самый лучший т. к. он удаляет по 1 элементу.

Урал Бердалиев
а вы проверяли код для arr = [0,,2,,,]? ради эксперимента, просто поставьте console.log() в if ()
Похожие вопросы
- Помогите избавиться от пустых значений в массиве.
- напишите программу которая проверяет элементы массива на схожесть
- Программа по вычислению индекса элемента массива в джава
- Поиск элементов в двумерном массиве
- Дан целочисленный массив размера N.Удалить из массива все элементы, встречающиеся менее трёх раз
- Что не так делаю? Должно из импута элемент сверяться с элементом из массива а1
- Если в массиве меньше 2-х чисел, вернуть строку, сообщающую, что чисел недостаточно.
- Заполнение массива случайными простыми числами в диапазоне от 2 до n
- Разве сумму элементов массива таким способом (см) нельзя найти?
- Как найти максимальное значение в массиве массивов?