将特定对象格式转换为数据集格式

transform a specific object format to a dataset format

我得到了这样一个特定格式的对象:

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" },
  ...
]

我想知道 lodash 中是否有任何内置函数可以实现这种情况,或者我可以自己轻松完成?

使用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)

你可以使用 _.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>