Как транспонировать коллекцию в стиле Лодаш? - PullRequest
0 голосов
/ 22 мая 2019

У меня есть такая коллекция:

{
    a: {
        x: 1,
        y: 2,
    },
    b: {
        x: 3,
        y: 4,
    }
}

И я хочу транспонировать так:

{
    x: {
        a: 1,
        b: 2,
    },
    y: {
        a: 3,
        b: 4,
    }
}

Сегодня я использую

var result = {};
for (var c in value)
  for (var r in value[c]) 
    result[r][c] = value[c][r];
return result;

Но каков "способ Лодаша" сделать это?

1 Ответ

1 голос
/ 23 мая 2019

Вы можете использовать _.forOwn, если вы действительно хотите использовать Lodash:

const value = {a:{x:1,y:2},b:{x:3,y:4}};
let result = {};
_.forOwn(value, (v, c) => _.forOwn(v, (w, r) => (result[r] = result[r] || {})[c] = w));
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>
...