【问题标题】:Merge Arrays into Object gives undefined将数组合并到对象中给出未定义
【发布时间】:2021-06-27 09:54:34
【问题描述】:

我有一个关于将两个数组合并为 JSON 对象的问题。

我从 API 接收一个对象,该对象包含一个对象数组(列)和一个数组数组(数据)。

我已经使用 lodash 的 zipObject 实现了以下内容,以尝试合并列和数据,并使用列和数据创建 JSON 对象。

  function prepareTable() {
    let columns = apiData.columns
    let array = columns.map(function (obj) {
      return obj.title
    })
    const tableObject = apiData.data.map(datum => {
      _.zipObject(array, datum)
    })

    console.log(tableObject)
  }

当我为 apiData.data 或列执行 console.log 时,我可以看到所有数据以及数组作为 1 个包含 18 个元素的数组:

但是,当我在控制台中打印 tableObject 时,它返回未定义。

当我为上面的代码执行 console.log(typeof datum) 时,我得到 719 个对象类型。我认为这是问题,因为 zipObject 接收两个数组作为参数,一个用于道具,一个用于值。

我不明白为什么当我映射数组数组时,我将对象作为每个映射项的类型。我希望数组。

有人知道问题可能出在哪里以及如何解决吗?

【问题讨论】:

  • 你没有在你的 .map() 函数中返回任何东西,所以 undefined 被隐式返回。请改用return _.zipObject(array, datum)
  • 是的,成功了。非常感谢,特里!

标签: arrays reactjs typescript lodash


【解决方案1】:

只需更改为:

    const tableObject = apiData.data.map(datum =>  _.zipObject(array, datum))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 2019-08-15
    相关资源
    最近更新 更多