Intercambiar elementos de matriz en JavaScript

Anika Tabassum Era 15 febrero 2024
  1. Use una variable temporal para intercambiar elementos de matriz en JavaScript
  2. Use la asignación de destructor ES6 para intercambiar elementos de matriz en JavaScript
  3. Use Bitwise XOR y Array Iteration para intercambiar elementos de matriz en JavaScript
Intercambiar elementos de matriz en JavaScript

La forma tradicional de intercambiar dos elementos es usar una variable temp. En el caso de JavaScript, podemos reasignar fácilmente los objetos de matriz a una variable establecida como un objeto de matriz de forma predeterminada y hacer que el proceso vaya más allá para transferir elementos de dos matrices para el intercambio.

Nuevamente, la convención ES6 ha traído un intercambio más eficiente para variables y objetos normales. Otra forma es usar otro método tradicional de usar un bucle a través de los elementos de la matriz e intercambiarlos, leyendo los índices.

De esta forma se consume demasiado tiempo y se tienen en cuenta algunas líneas de código adicionales.

Aquí, veremos todos los ejemplos preferibles que harán que la tarea de intercambio sea más flexible. ¡Saltamos a las bases de código!

Use una variable temporal para intercambiar elementos de matriz en JavaScript

En el siguiente ejemplo, tomaremos dos matrices con los elementos correspondientes. Nuestro objetivo aquí es asignar una nueva variable y transferir una de las matrices allí.

Luego reasigne la otra matriz a la matriz que acaba de cambiar su contenido a la variable. Y, por último, cambie el contenido de la variable a la última matriz que elegimos.

Esta es la operación básica para el cambio de variable temporal de elementos de matriz.

Fragmento de código:

var x = [1, 2, 3];
var y = [4, 5, 6];
var a;
a = x;
x = y
y = a;
console.log(x)
console.log(y)

Producción:

Usar variable temporal para intercambiar elementos de matriz

Como puede ver, la x contiene [1,2,3] y la y contiene [4,5,6]. Cuando se inicia el intercambio, la variable a toma los elementos de x, y la x recibe los elementos de y.

Para el paso final, y añade el contenido de a. El resultado infiere un resultado intercambiado.

Use la asignación de destructor ES6 para intercambiar elementos de matriz en JavaScript

La asignación del destructor ES6 intercambia dos arreglos más fácilmente y requiere solo una línea de código. Solo necesita asignar las matrices entre corchetes y establecer el lado derecho en forma inversa.

El patrón para establecer la asignación del destructor es fácil si observa detenidamente.

Fragmento de código:

var x = [1, 3, 5];
var y = [2, 4, 6];
[x, y] = [y, x]
console.log(x)
console.log(y)

Producción:

Use la asignación de destructor ES6 para intercambiar elementos de matriz

Use Bitwise XOR y Array Iteration para intercambiar elementos de matriz en JavaScript

Además de las dos convenciones mencionadas anteriormente, existen múltiples formas de intercambiar elementos de matriz. Puede intercambiar usando métodos de resta, operación bit a bit XOR o la regla de variable temporal aplicando una iteración para la matriz.

Aquí, hemos tenido en cuenta la operación XOR para intercambiar los elementos de dos matrices.

Fragmento de código:

var x = [7, 42, 7];
var y = [4, 5, 6];
if (x.length == y.length) {
  for (var i = 0; i < x.length; i++) {
    x[i] = x[i] ^ y[i]
    y[i] = x[i] ^ y[i]
    x[i] = x[i] ^ y[i]
  }
}
console.log(x)
console.log(y)

Producción:

Use Bitwise XOR y Array Iteration para intercambiar elementos de matriz

Consideremos el ejemplo, x[0] = 7 e y[0] = 4. Cuando ejecutamos 7^4, el patrón de bits correspondiente para 7 es 111 y 4 es 100.

Después del primer XOR, obtenemos 011, almacenado como x[0]. Para el siguiente XOR tenemos x[0] = 3 (011) e y[0] = 100, por lo que el resultado, en este caso, se almacena en y[0] es 111 = 7.

Y en x[0], obtendremos 111^011 = 100 (4). Entonces, nuestros primeros elementos de la matriz x e y se intercambian, y podemos repetir esta iteración para cada elemento indexado.

Anika Tabassum Era avatar Anika Tabassum Era avatar

Era is an observer who loves cracking the ambiguos barriers. An AI enthusiast to help others with the drive and develop a stronger community.

LinkedIn Facebook

Artículo relacionado - JavaScript Array