преобразовать указанный формат c объекта в формат набора данных - PullRequest
0 голосов
/ 19 июня 2020

У меня есть такой объект с определенным форматом c, например:

const o = {
  a: [1, 4],
  b: [2, 5],
  c: [3, 6],
  ...
}

Затем мне нужно преобразовать его в формат набора данных, например:

const data = [
  { a:"1", b:"2", c:"3" },
  { a:"4", b:"5". c:"6" },
  ...
]

I Мне интересно, есть ли какие-либо встроенные функции в loda sh, которые могли бы реализовать этот сценарий, или я мог бы просто сделать это сам?

Ответы [ 2 ]

2 голосов
/ 19 июня 2020

Вы можете использовать _.transform.

const
    object = { a: [1, 4], b: [2, 5], c: [3, 6] },
    result = _.transform(object, (r, a, k) => a.forEach((v, i) => {
        r[i] = r[i] || {};
        r[i][k] = v;
    }), []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
2 голосов
/ 19 июня 2020

Использование Object.assign()

const o = {a: [1, 4], b: [2, 5], c: [3, 6]}

const r = []

for (let k in o)
  o[k].forEach((v, i) => 
    r[i] = Object.assign(r[i] || {}, {[k]: v}))

console.log(r)
...