Cómo mostrar cuatro imágenes al azar con enlace y sin duplicados usando Javascript

Debería usar otro tipo de estructura, o crear otra matriz con la misma cantidad de índices para verificar si la imagen ya se está utilizando, con booleanos por ejemplo.

Mi sugerencia sería alguna estructura como:

var imágenes = [
{
“id”: 1,
“enlace”: “http://imageUrl.com”,
“usado”: falso
},
{
“id”: 2,
“enlace”: “http://image2Url.com”,
“usado”: falso
}
];
// Agrega un poco más si quieres

Luego solo genera un índice aleatorio entre 0 y el número de imágenes.

Haz un bucle como:

// Inicializar variables.
contador var = 0; var randomIndex = 0;

// Define el número de imágenes generadas que deseas
var displayImages = 2;

while (counter! == displayImages) {
randomIndex = Math.floor (Math.random () * images.length);
if (images [randomIndex] [“used”] === false) {
images [randomIndex] [“used”] = true;

/ * SU CÓDIGO PARA VISUALIZAR AQUÍ * /
// tal vez algo como: (sin uso de jquery)
var contenedor = document.querySelector (“. contenedor”);
container.innerHTML + = ‘

‘;

// Incremente el contador solo si no se ha usado antes.
contador ++;
}
}

Solo asegúrese de que las imágenes de visualización que configure sean menores o iguales que la cantidad de imágenes que tiene en la matriz, para evitar un bucle infinito.

Espero que haya ayudado de alguna manera.

Supongo que el enlace es único. La URL que contiene no encuentra una imagen exacta. Por ejemplo png, jpeg, gif, etc. Usted maneja esta URL de acuerdo con su lógica, en caso de que necesite una biblioteca de procesamiento de imágenes. Imprima el contenido de la imagen en formato binario con el encabezado HTTP Content-Type derecho image / png, image / jpeg, etc.

No estoy totalmente seguro de entender lo que está buscando, así que voy a asumir algunas cosas:

  1. Tienes una lista del universo de posibles imágenes que mostrarás. En el código al que se vinculó, esto está representado por la matriz `imagelinks`, así que supongo que tiene una lista similar.
  2. La única restricción de duplicación que tiene es que no muestra la misma imagen dos veces en una pantalla determinada.

Aquí hay una muestra anotada de cómo haría esto.