gpt4 book ai didi

javascript - 如何将 JSON 转换为索引数组

转载 作者:行者123 更新时间:2023-11-29 20:31:39 24 4
gpt4 key购买 nike

我正在将从我的 firebase 数据库接收到的数据转换为适合在 SectionList 上使用的格式。

我已经能够创建数据结构的某些部分,但无法关联数据。

SectionList 的格式如下:

[
{
index: 0,
title: "Pan simple",
data: [
{
id: 0,
},
{
id: 1,
}
]
},
{
index: 1,
title: "Pan dulce",
data: [
{
id: 0,
}

]
}
]

我从数据库中收到的格式如下:

"storeName": { 
products: {
'-Lo7D2Y8ZVEXnJb5LMvd': {
name: 'Pan de molde',
category: 'Molde'
},
'-Lo7C4HAkeE0cssxg9E-': {
name: 'Bollo de Hamburguresa',
category: 'Hamburguesa'
}
},
category: {
Molde: {
'-Lo7D2Y8ZVEXnJb5LMvd': true
},
Hamburguesa: {
'-Lo7C4HAkeE0cssxg9E-': true
}
}
}

标题”是类别键,“数据”是产品上的对象> 分支机构。我有这个功能来接收数据并转换它:

   export default (props, storeName) => {
firebase
.database()
.ref(`Store/${storeName}`)
.on("value", function(snapshot) {
if (snapshot.val() != null) {
var values = snapshot.val() || {};
var dataFormat = [];
var x = 0;
for (var i in values.category) {
var data = Object.assign({
data: [],
index: x,
category: i
});
dataFormat.push(data);
x++;
}
console.log("Data", dataFormat);
}
});
};

当前输出为

[ 
{ data: [], index: 0, category: 'Molde' },
{ data: [], index: 1, category: 'Hamburguesa' }
]

预期的输出将是:

[ 
{
data: [
{
id: 'Lo7D2Y8ZVEXnJb5LMvd',
name: 'Pan de molde',
category: 'Molde'
}
],
index: 0,
category: 'Molde'
},
{
data: [
{
id: '-Lo7C4HAkeE0cssxg9E-',
name: 'Bollo de Hamburguresa',
category: 'Hamburguesa'
}
],
index: 1,
category: 'Hamburguesa'
}
]

如何将适当的数据放入每个部分?

最佳答案

一些事情:

  • 您检查 snapshot.val() 是否为 != null,因此没有必要同时执行 var values = snapshot.val() || {}; - 你知道这是真的
  • Object.assign 带有对象文字是多余的,只需使用文字
  • 你正在使用 ES6,你不需要坚持 var
  • map 替换 for 循环会更优雅
  • 您在问题中发布的输入似乎在任何地方都没有包含产品 ID,所以我在这里跳过了它;如果您用更多信息更新问题,我也很乐意解释这一点。

考虑到这一点,这是我的建议:

export default (props, storeName) => {
firebase
.database()
.ref(`Store/${storeName}`)
.on("value", function(snapshot) {
const values = snapshot.val();
if (values) {
const dataFormat = Object.keys(values.category)
.map((category, index) => ({
category,
index,
data: Object.values(values.products).filter(
product => product.category === category
)
}));
console.log("Data", dataFormat);
}
});
};

关于javascript - 如何将 JSON 转换为索引数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57837235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com