How to remove empty array values ("") from an array?

Try filtering with the Boolean function:

columns.filter(Boolean)

This will filter out all falsy values


It's because when you columns[0].splice(i, 1); you are changing the same array you are iterating over so you might want to use an array filter like

columns[0] = columns[0].filter((val) => val != "");

instead of the for loop


You could use the filter like:

arr = arr.filter(item => item);

Example:

let arr = ['One', 'Two', '', 'Four', '', ''];
arr = arr.filter(item => item);
console.log(arr);

// Result
// ['One', 'Two', 'Four']

Because an empty string evaluates to boolean false. It works with all falsy values like 0, false, null, undefined, '', etc.

DEMO

If you want to keep some values like number 0 (zero) you could use item !== undefined. This filters only undefined values. Keep in mind to trim your string or check with regex to ensure empty strings without whitespaces.


after creating the columns array,

filter the empty values like that

columns = columns.filter((v) => v != '')