/* Ejemplo 1 - Desordenar array: En otras palabras: Cambiar las posiciones de los elementos del array aleatoriamente usando .sort() y Math.random() */ const numeros = [2, 4, 6, 8]; console.log(numeros); // (4) [2, 4, 6, 8] /* numeros.sort((a, b) => Math.random() - 0.5) numero < 0 -> a esta en un indice menor q b -> (indice a) < (indice b) numero = 0 -> a y b podrian estar en el mismo indice -> (indice a) = (indice b) numero > 0 -> a esta en un indice mayor q b -> (indice a) > (indice b) */ console.log(numeros.sort(() => Math.random() - 0.5)); /* (4) [8, 6, 4, 2] (4) [2, 4, 6, 8] (4) [2, 8, 4, 6] */ /* Math.random() Numero pseudo-aleatorio y decimal entre 0 y 1 0
Tengo mucho tiempo dedicándome a la programación y en particular nunca había estudiado JS a profundidad me ha costado entender algunas cuestiones como esta en particular, tienes algún video donde puedas explicar este código, puede parecer algo tonto pero en donde he leído sobre esto dan por hecho que los sabes todo y es posible tener que adentrarse en otros temas antes de entenderlo, por cierto siempre me parece curioso como en algunas partes del mundo de habla hispana se refieren al 0.N como 0 ''coma'' N es curioso por que se escribe 0.5. :) saludos y excelente video, gracias.
Estoy algo atorado con el método .sort( ); lo que hace es comparar el array[0] y array[1], luego de eso compara el array[1] y array[2] y asi el 2 con el 3 y el 3 con el 4...??? Como trabaja por interno.?
Amigo y si tengo 2 arrays y debo ordenar 1 según los criterios de otro? Ejemplo: un arreglo de nombres de personas y otro arreglo con sus números de identificación y debo hacer una función que ordene los números de identificación de las personas según su nombre
Hola midu, se me viene un coding challenge y me dijeron que algo que me podrian pedir seria agarrar un array multidimensional de enteros y devolver un array de una dimension con los elementos ordenados. piden para esto eficiencia en el codigo pero lo mas eficiente que se me ocurre es hacer array.flat().sort((a,b)=>a-b), tengo entendido que el sort utiliza el merge sort por lo que ya seria una forma optima de ordenar. tambien se me ocurrio escribir el merge sort y en su interior agregar el codigo para hacer el flat manual, pero como lo veo, seguiria teniendo la misma complejidad temporal. que opinas?
Yo he usado mucho el no traer elementos unicos en una api, pero yo manejo un codigo sacado de Stack overflow que lo tengo bien guardaito cuando hace falta jajaja. Me imagino que el new Set es unicamente con numeros no con string o elementos de un objeto.
@@ricardoevz2624 let hash = {}; array = array.filter(function(current) { var exists = !hash[current.name]; hash[current.name] = true; return exists; }); Ese codigo lo que hace es que supongamos que tienes un objeto que te trae todo los paises, pero entre ellos se repite 3 veces España, la decirle que el current.name el filtrara aquellos que sean iguales, por el filter y al ser igual a true, el filtre solo te traera uno de la n cantidad existente.
@@ricardoevz2624 A la vieja usanza podes crear un objeto e ir guardando los valores del arreglo como keys del objeto, y al final crear el arreglo nuevo con las keys del objeto, por ejemplo con Object.keys.
Funciona igual con cualquier elemento primitivo, strings incluidos. Con objetos ya no funciona porque comparar objetos no es sencillo, depende de si buscas que sean literalmente el mismo objeto, o si queres verificar si es una copia profunda, pero eso ya es mucho mas complicado. Para casos de uso normales, el Set te cubre numeros y strings que es lo mas basico, si fuera un array de objetos seria mas complicado.
Muchas gracias Míguelos! A veces me haces aprender, a veces me haces reír!
Muy buen video Midu, gracias por enseñarnos como funciona sort. Me gustaría un video explicando como trabajar con fechas. Saludos
estuve buscando un video que lo explicara y nadie lo hacia hasta que encontre este video muchas gracias:)
DIOS PERO QUE HERMOSO ES EL SORT
/* Ejemplo 1 - Desordenar array:
En otras palabras:
Cambiar las posiciones de los elementos del array aleatoriamente usando .sort() y Math.random() */
const numeros = [2, 4, 6, 8];
console.log(numeros);
// (4) [2, 4, 6, 8]
/*
numeros.sort((a, b) => Math.random() - 0.5)
numero < 0 -> a esta en un indice menor q b -> (indice a) < (indice b)
numero = 0 -> a y b podrian estar en el mismo indice -> (indice a) = (indice b)
numero > 0 -> a esta en un indice mayor q b -> (indice a) > (indice b) */
console.log(numeros.sort(() => Math.random() - 0.5));
/* (4) [8, 6, 4, 2]
(4) [2, 4, 6, 8]
(4) [2, 8, 4, 6] */
/*
Math.random() Numero pseudo-aleatorio y decimal entre 0 y 1
0
como si fuese el destino, justo necesito ordenar arrays xD
llevo apenas unas semanitas aprendiendo, y con el mas magico quede WTF con ese punto y como adelante
Tengo mucho tiempo dedicándome a la programación y en particular nunca había estudiado JS a profundidad me ha costado entender algunas cuestiones como esta en particular, tienes algún video donde puedas explicar este código, puede parecer algo tonto pero en donde he leído sobre esto dan por hecho que los sabes todo y es posible tener que adentrarse en otros temas antes de entenderlo, por cierto siempre me parece curioso como en algunas partes del mundo de habla hispana se refieren al 0.N como 0 ''coma'' N es curioso por que se escribe 0.5. :) saludos y excelente video, gracias.
Estoy algo atorado con el método .sort( ); lo que hace es comparar el array[0] y array[1], luego de eso compara el array[1] y array[2] y asi el 2 con el 3 y el 3 con el 4...??? Como trabaja por interno.?
Amigo y si tengo 2 arrays y debo ordenar 1 según los criterios de otro? Ejemplo: un arreglo de nombres de personas y otro arreglo con sus números de identificación y debo hacer una función que ordene los números de identificación de las personas según su nombre
Podrías hacer un vídeo dando tu opinión de alphacode por favor
que editor usas para el ejemplo?
Muy buen video, me podrias decir que editor estas usando?
te amo midu 😍
Hola midu, se me viene un coding challenge y me dijeron que algo que me podrian pedir seria agarrar un array multidimensional de enteros y devolver un array de una dimension con los elementos ordenados. piden para esto eficiencia en el codigo pero lo mas eficiente que se me ocurre es hacer array.flat().sort((a,b)=>a-b), tengo entendido que el sort utiliza el merge sort por lo que ya seria una forma optima de ordenar. tambien se me ocurrio escribir el merge sort y en su interior agregar el codigo para hacer el flat manual, pero como lo veo, seguiria teniendo la misma complejidad temporal. que opinas?
Cómo te fue?
El nivel de magia negra en este video es impresionante 😹🕵🏼♀️
Como se llama el programa que esta usando para ejecutar JavaScript ?
RunJS
Yo probé Runjs y no es gratis :(
Yo he usado mucho el no traer elementos unicos en una api, pero yo manejo un codigo sacado de Stack overflow que lo tengo bien guardaito cuando hace falta jajaja. Me imagino que el new Set es unicamente con numeros no con string o elementos de un objeto.
Podrías compartirnos tú método de favor :D
@@ricardoevz2624
let hash = {};
array = array.filter(function(current) {
var exists = !hash[current.name];
hash[current.name] = true;
return exists;
});
Ese codigo lo que hace es que supongamos que tienes un objeto que te trae todo los paises, pero entre ellos se repite 3 veces España, la decirle que el current.name el filtrara aquellos que sean iguales, por el filter y al ser igual a true, el filtre solo te traera uno de la n cantidad existente.
Carlos comparta ese código mágico por favor
@@ricardoevz2624 A la vieja usanza podes crear un objeto e ir guardando los valores del arreglo como keys del objeto, y al final crear el arreglo nuevo con las keys del objeto, por ejemplo con Object.keys.
Funciona igual con cualquier elemento primitivo, strings incluidos. Con objetos ya no funciona porque comparar objetos no es sencillo, depende de si buscas que sean literalmente el mismo objeto, o si queres verificar si es una copia profunda, pero eso ya es mucho mas complicado. Para casos de uso normales, el Set te cubre numeros y strings que es lo mas basico, si fuera un array de objetos seria mas complicado.
para la mayoría de casos de aleatoriedad es que el math.random te salva la vida
Midugod siempre sacándola de home run
Yo también disfruto verte aunque no entienda nada! Jajaja
Pd: imposible no entenderte.
y con cadenas? como ordeno de menos a mayor?
El inicio esta un poco confuso, je.
El intento se hizo
midupregunta, midurespuesta, midupregunta, miduproblema
Como puedo hacer un sort de divs segun el numero de su id?
Como se llama el editor de Texto que usa?
RunJS
como se llamo ese temas que usas midu
Necesito saber