@linuxchucho, algo así?:
Código Javascript
:
Ver originalfunction mostrar(){
var nom = [1,2,3,4,5].map(function(num){
return document.getElementById('nombre' + num)
}), reset = 0;
nom.slice(1).some(function(input, index){
//nom[0] viene a ser nom1 debido a que las matrices empiezan de 0
//input.value es equivalente a nomX.value
if(nom[0].value == input.value){
//"some" funciona como "forEach", así que estamos en un bucle y se termina al retornar "true"
//Esto es equivalente a:
//recorrido1: if(nom1.value == nom2.value)
//recorrido2: if(nom1.value == nom3.value)
//recorrido3: if(nom1.value == nom4.value)
//recorrido4: if(nom1.value == nom5.value)
alert(input.value + ' Ya ha sido seleccionado, por favor selecciona otro, se repite en: nombre' + (index+2));
input.value = reset;
return true
}
return false
})
}
En este caso usé
Array.map() para crear un array de elementos como nombre1, nombre2, ... hasta nombre5.
Luego usé
Array.some() para recorrer el array hasta que encuentre un valor que se repite con el primero.
Demo