Один из способов сделать это (без использования lodash) заключается в следующем:
const transform = (original) => Object.values(original)
.flat()
.reduce((all, {algo_id, ...rest}) => ({...all, [algo_id]: rest}), {})
const original ={"13": {"algo_id": 2, "temp": {"temp1": [1, 2]}}, "8": [{"algo_id": 1, "temp": {"a": 1}}, {"algo_id": 101, "temp": {"a": 2}}]}
console.log(transform(original))
Но это делает предположение, что вы можете использовать брата algo_id
как есть.Ваш пример, кажется, показывает дальнейшую обработку этого, для которого я не вижу никакого правила.
Если ваши целевые среды не поддерживают flat
, вы можете заменить это:
.flat()
с этим:
.reduce((a, b) => a.concat(b), [])