Quiero eliminar un rango de elementos de una matriz
Supongamos que tengo una matriz con valores dados
let arr = [33,44,56,88,332,67,88,33] Di un rango como entrada, digamos del índice 3 al índice 6. La salida que quiero: [33,44,56,33]
Usando Array.prototype.slice y Array.prototype.concat
const arr = [33, 44, 56, 88, 332, 67, 88, 33], startIndex = 3, endIndex = 6, newArr = arr.slice(0, startIndex).concat(arr.slice(endIndex + 1)); console.log(newArr);Usando Array.prototype.slice y spread (...)
const arr = [33, 44, 56, 88, 332, 67, 88, 33], startIndex = 3, endIndex = 6, newArr = [...arr.slice(0, startIndex), ...arr.slice(endIndex + 1)]; console.log(newArr);Usando Array.prototype.splice
Nota: el splice altera la matriz original.
const arr = [33, 44, 56, 88, 332, 67, 88, 33], startIndex = 3, endIndex = 6; arr.splice(startIndex, endIndex - startIndex + 1); console.log(arr);Para eliminar explícitamente un elemento de matriz, puede hacer esto:
let arr = [ 33, 44, 56, 88, 332, 67, 88, 33 ]; delete arr [ 3 ]; // the array length doesn't change! console.log( arr );Para eliminar un rango en una matriz, puede intentar esto:
let startIndex = 3; let stopIndex = 6; let lengthToRemove = (stopIndex + 1) - startIndex; let arr = [ 33, 44, 56, 88, 332, 67, 88, 33 ]; arr.splice( startIndex, lengthToRemove ); console.log( arr );