He visto docenas de preguntas para verificar si una matriz está vacía. Pero no puedo encontrar la pregunta sobre cómo verificar si el primer elemento de una matriz está vacío.
Actualmente, estoy haciendo esta verificación de esta manera, pero dudo mucho que sea la forma correcta de hacerlo.
var specialtiesListArray = ['', 'not', 'empty', 'value']; if (specialtiesListArray[0] == '') { specialtiesListArray.shift(); // <== Removing the first item when empty. } console.info({ specialtiesListArray });Lo anterior funciona bien, pero me pregunto si esto está bien. ¿Hay mejores maneras? Y si alguien conoce un duplicado, por favor hágamelo saber. Con mucho gusto borro la pregunta si ya ha sido respondida.
Creo que tu enfoque está bien. Puede crear una función y verificar la longitud de la matriz antes de intentar leer el elemento en el índice 0 :
export const removeFirstItemIfEmpty = (array) => { if (array.length > 0 && array[0] == '') { array.shift(); } return array; } import { removeFirstItemIfEmpty } from './utils.js' const result = removeFirstItemIfEmpty(['', 'not', 'empty', 'value']); console.info({ result });Podría usar el filter y actualizar la matriz.
specialtiesListArray = ['', 'not', 'empty', 'value']; specialtiesListArray = specialtiesListArray.filter((item, index) => index!==0 && item !== ''); console.log(specialtiesListArray);La siguiente función eliminará todo lo que no esté definido, sea nulo o esté vacío, pero permitirá que pase el número 0 :
var testArr = [['', null, 'not', 'empty', 'value'],[false,2,3,4],[undefined,"", null,"one","two"],[0,1,2,3]]; function ltrimArr(arr){ while (arr.length && !arr[0]&&arr[0]!==0) arr.shift(); return arr } testArr.forEach(a=>console.log(ltrimArr(a)))