Tengo una matriz y quiero intercambiar dos elementos en la matriz. Si la matriz no está vacía, simplemente puedo hacer:
const swap = (arr, a, b) => { const temp = arr[a] arr[a] = arr[b] arr[b] = temp } y la función puede intercambiar correctamente el valor del índice a y b en la matriz arr .
Sin embargo, si la matriz tiene algunos elementos vacíos, como [1, , , ,] , y el resultado del swap será [undefined, empty, 1, empty] , mientras que el resultado esperado debería ser [empty × 2, 1, empty] . Entonces, ¿cómo modifico la función de swap para que el resultado sea correcto? ¿O hay alguna forma de hacer que un índice específico esté vacío en una matriz?
También falló:
const swap = (arr, a, b) => { const temp = arr[a] arr.splice(a, 1, arr[b]) arr.splice(b, 1, temp) }Problema inicial:
Tengo una matriz let arr = [1, , , ,] (que mostrará [1, empty × 3] en la consola) con una longitud de 4, y quiero mover el primer elemento al tercero, es decir: [empty × 2, 1, empty] . ¿Cómo logro eso?
He intentado splice y asignar valor directamente a la matriz, pero no funcionarán.
Necesita empalme, combinado con cambio para obtener el primer elemento
let arr = [1, , , ,] console.log(arr) arr.splice(2, 0, arr.shift()); console.log(arr)