Intercambio de Elemento en la Posición 1 con la Posición 2 en Listas Simples Javascript [SOLUCIONADO]

Resolviendo cuestiones de programación: Interchange Elemento d en pos1 con elemento d en pos2 en las listas simples de Javascript

Vamos a adentrarnos en el mundo del desarrollo web y, más concretamente, en uno de los lenguajes que conforman la triada fundamental de la web moderna: Javascript.

Javascript es uno de esos lenguajes de programación que, por su potencia y versatilidad, es una herramienta indispensable en el bagaje de cualquier desarrollador web. Y como tal, conocer sus entresijos y sutilezas puede marcar la diferencia cuando nos enfrentamos a problemas complejos en nuestro día a día.

Uno de esos problemas recurrentes es el que tendremos que resolver hoy: ¿Cómo intercambio el elemento d que ocupa la pos1 con el elemento d que se encuentra en la pos2 en listas simples de Javascript?

                
// Aquí tenemos una lista simple
var lista = [ 'a', 'b', 'c', 'd', 'e', 'f' ];

// Supongamos que queremos intercambiar 'c' (pos1) por 'e' (pos2)

var pos1 = 2, pos2 = 4;
var temp = lista[pos1]; // Guardamos 'c' en una variable temporal
lista[pos1] = lista[pos2]; // Colocamos 'e' en la posición donde estaba 'c'
lista[pos2] = temp; // Colocamos 'c' en la posición donde estaba 'e'

// Ahora nuestra lista se verá así:  ['a', 'b', 'e', 'd', 'c', 'f']
                
            


Pero, ¿por qué es necesario hacer esto? ¿No hay una forma más sencilla? La respuesta es sí, de hecho, hay otras maneras de llevarlo a cabo. Pero esta es una de las más eficaces en términos de rendimiento, ya que solo implica tres operaciones de asignación, y no requiere de ningún método costoso o bucle for que recorra la lista.

Además, este tipo de operación es aplicable a una amplia variedad de estructuras de datos, no solo a las listas, sino también a los arrays, o incluso a las strings (cadenas de texto), si las tratamos como un array de caracteres. Lo que nos lleva a otro ejemplo:

                
// Supongamos que en vez de una lista, tenemos una cadena de texto
var str = "abcdef";

// Queremos intercambiar 'c' por 'e'

var pos1 = 2, pos2 = 4;
var temp = str.charAt(pos1); // Guardamos 'c'
str = str.substr(0, pos1) + str.charAt(pos2) + str.substr(pos1 + 1); // Insertamos 'e' donde estaba 'c'
str = str.substr(0, pos2) + temp + str.substr(pos2 + 1); // Insertamos 'c' donde estaba 'e'

// Ahora nuestra cadena se ve así: "abeedf"
                
            


Por supuesto, hay muchas más cuestiones a tener en cuenta a la hora de optimizar nuestro código, como la legibilidad, la reusabilidad, y la escalabilidad del mismo. Pero con este simple ejemplo ya hemos dado un primer paso en esa dirección.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad