Estoy tratando de crear una lista de nombres, la cual no debe de tener ningún nombre repetido.
Para ello estoy usando el siguiente JSON:
[
{
"nombre": "María",
"genero": "Mujer",
"edad": 21
},
{
"nombre": "Ernesto",
"genero": "Hombre",
"edad": 45
},
{
"nombre": "María",
"genero": "Mujer",
"edad": 21
},
{
"nombre": "Paco",
"genero": "Hombre",
"edad": 12
}
]
Como podéis ver tiene el nombre de María repetido.
¿Cómo podría conseguir que este nombre no se repitiera más de una vez?
He intentado lo siguiente sin mucho éxito, ya que he estado mirando en Internet y todos más o menos hacen lo mismo, pero a mí no me funciona.
Código HTML:
<html>
<head>
<head>
<body>
<div class="nombres">
<div class="check">
<input class="opcion-input" type="checkbox" value="Isabel">
<label class="opcion-label" for="Isabel">Isabel</label>
</div>
<div class="check">
<input class="opcion-input" type="checkbox" value="Juan">
<label class="opcion-label" for="Juan">Juan</label>
</div>
</div>
</body>
</html>
Código JavaScript:
let html = '';
personas.forEach(function(item) {
const nombre = item.nombre;
function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
}
var unique = nombre.filter(onlyUnique);
console.log(unique);
html += '<div class="check"><input class="opcion-input" type="checkbox" value="'
+ unique + '"><label class="opcion-label" for="' + unique + '">'
+ unique +'</label></div>';
});
// Actualizamos nombres
$('div.nombres').append(html);