Estoy tratando de hacer un bucle en un objeto json para que pueda mostrarme todas las duplicaciones de las propiedades.
Este es mi archivo JSON (departements-list.json) :
[ {"Departement": "meryem"}, {"Departement": "meryem"}, {"Departement": "meryem"}, {"Departement": "meryem"}, {"Departement": "meryem"}, {"Departement": "sara"}, {"Departement": "sara"}, {"Departement": "sara"}, {"Departement": "ouss"}, {"Departement": "ouss"}, {"Departement": "ouss"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"} ]Y este es mi js:
import departement_list from "../data/departements-list.json"; var jsonData = JSON.parse(JSON.stringify(departement_list)); for (var dep of jsonData) { let nb_dep = Object.keys(dep.Departement).length; console.log(dep.Departement, " =" , nb_dep); }Tuve este resultado en la consola del navegador:
meryem = 6 3custom-map.js:20 sara = 4 3custom-map.js:20 ouss = 4 9custom-map.js:20 samati = 6¡Qué no es lógico!
Este es un ejemplo de cómo obtener el número de ocurrencias para cada valor de departamento. Primero mapeo los datos para que sean una lista de los valores del departamento. Luego creo un nuevo conjunto para crear una matriz de cada valor. Luego recorro cada valor único, filtro los datos por ese valor y registro la longitud o el número de ocurrencias para cada valor.
const jsonData = [ {"Departement": "meryem"}, {"Departement": "meryem"}, {"Departement": "meryem"}, {"Departement": "meryem"}, {"Departement": "meryem"}, {"Departement": "sara"}, {"Departement": "sara"}, {"Departement": "sara"}, {"Departement": "ouss"}, {"Departement": "ouss"}, {"Departement": "ouss"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"}, {"Departement": "samati"} ]; const dataValues = jsonData.map(data => data.Departement); const uniqueValues = [...new Set(dataValues)]; for (const val of uniqueValues) { console.log(` Val ${val} has ${dataValues.filter(v => v == val).length} entries `); }