Tengo datos que se ven así
let countsRaw= [ 7, 8, 7, 6]Me gustaría que la salida se viera así
let countsObj = { 6: {count : 1, filterState : false}, 7: {count : 2, filterState : false}, 8: {count : 1, filterState : false}, }He intentado numerosas orientaciones diferentes, pero no obtengo el resultado que espero del código a continuación, cualquier explicación o dirección sería muy apreciada.
let countsObj = {}; countsRaw.forEach((x) => ({ count: (countsObj[x] = (countsObj[x] || 0) + 1), }));el resultado es
countObj = {6: 1, 7: 2, 8: 1}No puedo entender por qué no se agregan los objetos anidados.
Gracias (:
Simplemente olvidó agregar el objeto anidado.
const countsRaw = [ 7, 8, 7, 6]; const output = {}; countsRaw.forEach(e => { if (e in output) { output[e].count += 1; } else output[e] = { count: 1, filterState: false}; }); console.log(output);Esto es lo que yo haría:
let duplicatesRemoved = [...new Set(array)].sort(); let countsObj = {}; duplicatesRemoved.forEach((v,i) => { countsObj[v] = {count: i, filterState: false} });