Teniendo en cuenta el siguiente ejemplo de objeto JSON como entrada, ¿cómo usaría Javascript para duplicar cada objeto en función de la cantidad de veces que se encuentra en el par clave/valor "Recuento"?
Entrada de ejemplo:
[ { "name":"David", "Count":2 }, { "name":"John", "Count":3 }, ]Rendimiento esperado:
[ { "name": "David" }, { "name": "David" }, { "name": "John" }, { "name": "John" }, { "name": "John" }, ]Puede iterar en la propiedad Count e insertarla en otra matriz.
var data = [{ "name": "David", "Count": 2 }, { "name": "John", "Count": 3 } ]; const output = []; data.forEach(({ name, Count}) => { for(let i = 0; i < Count; i++) { output.push({ name }); } }); console.log(output);Puedes hacerlo fácilmente con la función reduce() :
let data = [ { "name": "David", "Count": 2 }, { "name": "John", "Count": 3 }, ] let new_data = data.reduce((sum, current) => { for (let index = 0; index < current.Count; index++) { sum.push({ name: current.name }) }; return sum }, []); console.log(new_data)yo haria algo asi
const output = input.reduce((acc, cur) => [ ...acc, ...Array.from({length: cur.Count}).map(() => ({ name: cur.name }) ], [])