Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
[ {name: 'Иван', age: 10}, {name: 'Таня', age: 15}, {name: 'Саша', age: 20}, {name: 'Таня', age: 15}, ]
[ {id: 1, name: 'Иван'}, {id: 2, name: 'Таня'}, {id: 3, name: 'Саша'}, ] [ {id: 1, age: '10'}, {id: 2, age: '15'}, {id: 3, age: '20'}, ]
const uniqueValues = arr.reduce((acc, n) => ( Object.keys(n).forEach(k => (acc[k] = acc[k] ?? new Set).add(n[k])), acc ), {}); const [ names, ages ] = [ 'name', 'age' ].map(k => Array.from( uniqueValues[k] ?? [], (n, i) => ({ id: -~i, [k]: n }) ));