dea*_*t88 0 javascript reactjs
我正在尝试将以下数据转换为:
{
title: 'The Promise',
blurb: 'Lorem Ipsum',
cover_image: 'Lorem Ipsum',
pub_year: 2002,
genre: 'Foobar'
}
Run Code Online (Sandbox Code Playgroud)
到:
[
{
col1: 'The Promise',
col2: 'Lorem Ipsum',
col3: 'Lorem Ipsum',
col4: 2002
col5: 'Foobar'
},
]
Run Code Online (Sandbox Code Playgroud)
我已经对此困惑了很长一段时间,只能让它看起来像这样,这只是单独的对象,而不是作为对象数组一部分的单个对象(从我的数据库返回的 JSON 中还有其他书籍对象)该函数需要进行迭代)
{col1: 1} //this is an id
{col2: 'The Promise'}
{col3: 'Lorem ipsum'}
{col4: Lorem Ipsum}
{col5: '2002'}
{col6: Foobar}
Run Code Online (Sandbox Code Playgroud)
这是我一直在研究的代码:
const data = React.useMemo(
() =>
props.tableData.map((object, i) => {
Object.values(object).map((value, i) => {
let col = `col${i + 1}`
const obj = { [col]: value }
})
}),
[props.tableData]
)
Run Code Online (Sandbox Code Playgroud)
映射值时,不要构造包含单个属性的对象,而是返回一个条目对(一个数组,其中第一个值是属性,第二个值是关联值),以便您可以将条目数组转换为对象与Object.fromEntries
.
const data = React.useMemo(
() =>
props.tableData.map((object) => (
Object.fromEntries(
Object.values(object).map((value, i) => [`col${i + 1}`, value])
)
)),
[props.tableData]
);
Run Code Online (Sandbox Code Playgroud)
这取决于所订购的输入对象中的属性。虽然这通常1
是可靠的,但它并不是一个值得依赖的好东西,并且如果任何属性变成数字(例如或) ,它就不起作用5
。考虑是否可以将输入对象属性格式化为(有序)数组。