#javascript #объекты #объединение #lodash
У меня имеется массив с разными данными , который выглядит примерно так: [ { "_id": "556c978be20c7cd0087c6f10", "username": "ivan", "music": [ "Metallica" ] }, { "_id": "556c978be20c7cd0087c6f10", "username": "ivan", "interests": [ "Music", "Djent" ] }, { "_id": "556c978be20c7cd0087c6f13", "username": "alina", "interests": [ "Music", "Literature" ] }, { "_id": "556c978be20c7cd0087c6f13", "username": "alina", "music": [ "Skyharbor" ] } ] Как с объединить объекты в массиве по ключам ('_id') следующим образом (приоритет lodash): [ { "_id": "556c978be20c7cd0087c6f10", "username": "ivan", "music": [ "Metallica" ], "interests": [ "Music", "Djent" ] }, { "_id": "556c978be20c7cd0087c6f13", "username": "alina", "music": [ "Skyharbor" ] "interests": [ "Music", "Literature" ] } ]
Ответы
Ответ 1
Сгруппировать по идентификаторам можно с помощью groupBy, а затем объединить пары с помощью merge: var users = [{ "_id": "556c978be20c7cd0087c6f10", "username": "ivan", "music": [ "Metallica" ] }, { "_id": "556c978be20c7cd0087c6f10", "username": "ivan", "interests": [ "Music", "Djent" ] }, { "_id": "556c978be20c7cd0087c6f13", "username": "alina", "interests": [ "Music", "Literature" ] }, { "_id": "556c978be20c7cd0087c6f13", "username": "alina", "music": [ "Skyharbor" ] }]; console.log( _.map( _.groupBy( users, function (u) { return u._id } ), function (g) { return _.merge.apply(this, g) } ) ); P. S. Прошу ногами не бить, в первый раз в жизни вижу lodash.
Комментариев нет:
Отправить комментарий