【发布时间】: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