将数组合并到对象中给出未定义
Merge Arrays into Object gives undefined
我有一个关于将两个数组合并成一个 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 时,我可以看到所有数据以及数组作为具有 18 个元素的 1 个数组:
然而,当我在控制台中打印 tableObject 时,它 returns 未定义。
当我对上面的代码执行 console.log(typeof datum) 时,我得到了 719 个对象类型。我认为这是问题所在,因为 zipObject 接收两个数组作为参数,一个用于道具,一个用于值。
我不明白为什么当我映射一个数组数组时,我得到对象作为每个映射项的类型。我希望数组。
有人知道问题出在哪里以及如何解决吗?
只需更改为:
const tableObject = apiData.data.map(datum => _.zipObject(array, datum))
我有一个关于将两个数组合并成一个 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 时,我可以看到所有数据以及数组作为具有 18 个元素的 1 个数组:
然而,当我在控制台中打印 tableObject 时,它 returns 未定义。
当我对上面的代码执行 console.log(typeof datum) 时,我得到了 719 个对象类型。我认为这是问题所在,因为 zipObject 接收两个数组作为参数,一个用于道具,一个用于值。
我不明白为什么当我映射一个数组数组时,我得到对象作为每个映射项的类型。我希望数组。
有人知道问题出在哪里以及如何解决吗?
只需更改为:
const tableObject = apiData.data.map(datum => _.zipObject(array, datum))