Заменить empty элементы в массиве
Имеется массив:
a = [empty, data, data, empty, data]
Требуется заменить в этом массиве empty на []
Такой метод не работает
a = [2,3, empty ,4]
test = a.map(function(item) {
if(!item){
return [];
}
else {
return item
}
})
// test = [2,3, empty ,4] после выполнения
Каким образом организовать проверку на empty в данном случае? (без использования сторонних библиотек)
Ответы (1 шт):
Автор решения: OPTIMUS PRIME
→ Ссылка
map, forEach и прочие встроенные методы пропускают пустые элементы массива. При этом, если туда непосредственно было присвоено значение undefined - увидят его:
let arr = new Array(5);
arr[0] = undefined;
arr.map(e => console.log("map", e));
for (let i = 0; i < arr.length; i++) {
console.log("for", arr[i]);
}
Используйте классический цикл:
let arr = [2, 3, , , "moo"];
for (let i = 0; i < arr.length; i++ ) {
if (typeof arr[i] === "undefined") {
arr[i] = [];
}
}
console.log(arr);