【问题标题】:transform a specific object format to a dataset format将特定对象格式转换为数据集格式
【发布时间】:2020-06-19 07:16:29
【问题描述】:

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

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 中是否有任何内置函数可以实现这种情况,或者我可以自己轻松完成?

【问题讨论】:

    标签: javascript arrays object lodash transform


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-02-01
        • 2019-07-23
        • 1970-01-01
        • 2019-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-16
        • 1970-01-01
        相关资源
        最近更新 更多