Hay excelentes publicaciones sobre cómo eliminar elementos y matrices de matrices, pero no puedo encontrar ninguna que lo haga para esta situación:
¿Cómo puedo eliminar la matriz que contiene UUID como su primer elemento?
let arr = [ ['Log entry ID', '_id'], ['UUID', '_source.uuid'], ['Timestamp', '_source.@timestamp'], ['Description', '_source._desc'] ];Puede usar Array.filter() y Array.includes() juntos de la siguiente manera:
let arr = [ ['Log entry ID', '_id'], ['UUID', '_source.uuid'], ['Timestamp', '_source.@timestamp'], ['Description', '_source._desc'] ]; arr = arr.filter(subarr => !subarr.includes('UUID')); // Or you can use subarr[0] !== 'UUID' if you want to check only first element console.log(arr)Si solo desea eliminar elementos cuyo primer elemento sea 'UUID' , puede establecer la condición del filtro para que el primer elemento no sea 'UUID' :
let arr = [ ['Log entry ID', '_id'], ['UUID', '_source.uuid'], ['Timestamp', '_source.@timestamp'], ['Description', '_source._desc'] ]; const res = arr.filter(e => e[0]!='UUID') console.log(res)De forma predeterminada, debe usar const siempre que sea posible, no let , por lo que filter() no es una solución ideal.
Usando const , aún puede eliminar el elemento de matriz deseado de manera efectiva usando el método splice() .
El método splice() sigue la sintaxis splice(start, deleteCount, ...items) donde start es el índice para iniciar el empalme, deleteCount es la cantidad de elementos que desea eliminar comenzando en el índice de start y items es cualquier número de elementos que desea inyectar en ese mismo index una vez que se haya completado la eliminación.
La eliminación es opcional y se puede sustituir por 0 si no desea eliminar ningún elemento, pero para esta pregunta, eliminaremos 1 elemento y excluiremos el argumento de items , que también es opcional, ya que no queremos inyectar cualquier elemento adicional.
Para su tarea, primero debemos encontrar el índice del elemento de matriz que tiene un primer elemento igual a UUID . Podemos usar findIndex() así:
const index = arr.findIndex(e => e[0] === 'UUID'); A continuación, podemos realizar nuestro splice() usando ese valor index como este:
arr.splice(index, 1); // 1 for deleting a single array elementCombinamos estos dos pasos en uno como este:
arr.splice(arr.findIndex(e => e[0] === 'UUID'), 1);Aquí está en acción, incluida la definición de matriz:
const arr = [ ['Log entry ID', '_id'], ['UUID', '_source.uuid'], ['Timestamp', '_source.@timestamp'], ['Description', '_source._desc'] ]; arr.splice(arr.findIndex(e => e[0] === 'UUID'), 1); console.log(arr);