из массива [{a: 1}, {a: 2}, {b: 2}, {b: 3}, {c: 2}] получить массив [{a: [1, 2]}, {b: [2, 3]}, {c: [2]}]? 🤔 Т.е. сделать ключи обьектов в массиве уникальными, а все их значения собрать в отдельные массивы?
Спасибо, попробую
редусом
я бы сначала собрал в объект, а потом бы перегнал в массив, чтоб сто раз туда-сюда не бегать, а всего пару
Собрал уникальные значения ключей? 🤔
ну и так просто удобнее хд
да. там всегда один ключ в объектах или как?
Там даже немного сложнее у меня. Обьекты вида {a_id: 1, b_id: 10}. Т.е. надо взять все уникальные a_id в массиве и им присвоить массив соответствующих b_id. Чот с ходу не соображу как тут правильно редусом пройтись 🤔
я чё-т сходу не вкурил, чё вы хотите, ес честно можно до/после?
Да, айн момент 🙂
та ну чё ты портишь всё(
ну как-то даже не интересно(
БРЫСЬ
Нипонил 🙂
слишком просто
Ой, все 😅
да я шучу, давайте исходные данные текстом уже
const beforeArray = [ { a_id: 1, b_id: 10, }, { a_id: 1, b_id: 11, }, { a_id: 2, b_id: 12, }, { a_id: 2, b_id: 13, }, { a_id: 3, b_id: 10, }, ];
Object.entries(beforeArray.reduce((a,{a_id,b_id})=>(a[a_id]?a[a_id].push(b_id):(a[a_id]=[b_id]),a),{})).map(([a,b_id])=>({a_id:Number(a),b_id})) ну это самое страшное, что смог
Ухххх!!! Действительно страшно как-то 🙂
на самом деле, хз, как лучше: так взять в начале не объект, а Map просто бегать по массивчику find-ом и пушить
Обсуждают сегодня