首页 新闻 会员 周边 捐助

怎么样数据组装

0
悬赏园豆:20 [待解决问题]

原始数据:
let rawData =
[
{ "name": "尺寸", "list": [{ "label": "S", "value": 'S001' }, { "label": "M", "value": 'M002' }, { "label": "L", "value": 'L003' }] },
{ "name": "重量", "list": [{ "label": "500g", "value": '5001' }, { "label": "1kg", "value": '10002' }, { "label": "2kg", "value": '2003' }] },
{ "name": "口味", "list": [{ "label": "不辣", "value": 'bula001' }, { "label": "微辣", "value": 'weila002' }, { "label": "中辣", "value": 'zhongla003' }, { "label": "重辣", "value": 'zhongla004' }] },
{ "name": "鞋码", "list": [{ "label": "34", "value": 'xm001' },{ "label": "35", "value": 'xm002' }] }
]

组装后的数据格式:
[
{
"5001": "500g",
"S001": "S",
"bula001": "不辣",
"text": "S/500g/不辣"
},
{
"5001": "500g",
"S001": "S",
"weila002": "微辣",
"text": "S/500g/微辣"
},
{
"5001": "500g",
"S001": "S",
"zhongla003": "中辣",
"text": "S/500g/中辣"
},
{
"5001": "500g",
"S001": "S",
"zhongla004": "重辣",
"text": "S/500g/重辣"
},
{
"10002": "1kg",
"S001": "S",
"bula001": "不辣",
"text": "S/1kg/不辣"
},
{
"10002": "1kg",
"S001": "S",
"weila002": "微辣",
"text": "S/1kg/微辣"
},
{
"10002": "1kg",
"S001": "S",
"zhongla003": "中辣",
"text": "S/1kg/中辣"
},
{
"10002": "1kg",
"S001": "S",
"zhongla004": "重辣",
"text": "S/1kg/重辣"
},
{
"2003": "2kg",
"S001": "S",
"bula001": "不辣",
"text": "S/2kg/不辣"
},
{
"2003": "2kg",
"S001": "S",
"weila002": "微辣",
"text": "S/2kg/微辣"
},
{
"2003": "2kg",
"S001": "S",
"zhongla003": "中辣",
"text": "S/2kg/中辣"
},
{
"2003": "2kg",
"S001": "S",
"zhongla004": "重辣",
"text": "S/2kg/重辣"
},
{
"5001": "500g",
"M002": "M",
"bula001": "不辣",
"text": "M/500g/不辣"
},
{
"5001": "500g",
"M002": "M",
"weila002": "微辣",
"text": "M/500g/微辣"
},
{
"5001": "500g",
"M002": "M",
"zhongla003": "中辣",
"text": "M/500g/中辣"
},
{
"5001": "500g",
"M002": "M",
"zhongla004": "重辣",
"text": "M/500g/重辣"
},
{
"10002": "1kg",
"M002": "M",
"bula001": "不辣",
"text": "M/1kg/不辣"
},
{
"10002": "1kg",
"M002": "M",
"weila002": "微辣",
"text": "M/1kg/微辣"
},
{
"10002": "1kg",
"M002": "M",
"zhongla003": "中辣",
"text": "M/1kg/中辣"
},
{
"10002": "1kg",
"M002": "M",
"zhongla004": "重辣",
"text": "M/1kg/重辣"
},
{
"2003": "2kg",
"M002": "M",
"bula001": "不辣",
"text": "M/2kg/不辣"
},
{
"2003": "2kg",
"M002": "M",
"weila002": "微辣",
"text": "M/2kg/微辣"
},
{
"2003": "2kg",
"M002": "M",
"zhongla003": "中辣",
"text": "M/2kg/中辣"
},
{
"2003": "2kg",
"M002": "M",
"zhongla004": "重辣",
"text": "M/2kg/重辣"
},
{
"5001": "500g",
"L003": "L",
"bula001": "不辣",
"text": "L/500g/不辣"
},
{
"5001": "500g",
"L003": "L",
"weila002": "微辣",
"text": "L/500g/微辣"
},
{
"5001": "500g",
"L003": "L",
"zhongla003": "中辣",
"text": "L/500g/中辣"
},
{
"5001": "500g",
"L003": "L",
"zhongla004": "重辣",
"text": "L/500g/重辣"
},
{
"10002": "1kg",
"L003": "L",
"bula001": "不辣",
"text": "L/1kg/不辣"
},
{
"10002": "1kg",
"L003": "L",
"weila002": "微辣",
"text": "L/1kg/微辣"
},
{
"10002": "1kg",
"L003": "L",
"zhongla003": "中辣",
"text": "L/1kg/中辣"
},
{
"10002": "1kg",
"L003": "L",
"zhongla004": "重辣",
"text": "L/1kg/重辣"
},
{
"2003": "2kg",
"L003": "L",
"bula001": "不辣",
"text": "L/2kg/不辣"
},
{
"2003": "2kg",
"L003": "L",
"weila002": "微辣",
"text": "L/2kg/微辣"
},
{
"2003": "2kg",
"L003": "L",
"zhongla003": "中辣",
"text": "L/2kg/中辣"
},
{
"2003": "2kg",
"L003": "L",
"zhongla004": "重辣",
"text": "L/2kg/重辣"
}
]

(⊙o⊙)买噶的主页 (⊙o⊙)买噶 | 初学一级 | 园豆:182
提问于:2023-06-30 10:29
< >
分享
所有回答(2)
0

可以吧你的问题描述清楚, 这样其他人才好回答问题.

czd890 | 园豆:14488 (专家六级) | 2023-06-30 17:06
0

根据您提供的原始数据,您希望将其组装为特定的数据格式。下面是一个可能的解决方案,使用嵌套循环来遍历原始数据并生成目标数据格式:

javascript
Copy code
let rawData = [
{ "name": "尺寸", "list": [{ "label": "S", "value": 'S001' }, { "label": "M", "value": 'M002' }, { "label": "L", "value": 'L003' }] },
{ "name": "重量", "list": [{ "label": "500g", "value": '5001' }, { "label": "1kg", "value": '10002' }, { "label": "2kg", "value": '2003' }] },
{ "name": "口味", "list": [{ "label": "不辣", "value": 'bula001' }, { "label": "微辣", "value": 'weila002' }, { "label": "中辣", "value": 'zhongla003' }, { "label": "重辣", "value": 'zhongla004' }] },
{ "name": "鞋码", "list": [{ "label": "34", "value": 'xm001' },{ "label": "35", "value": 'xm002' }] }
];

let assembledData = [];

function assembleData(index, obj) {
let currentKey = Object.keys(obj)[index];
let currentValue = obj[currentKey];

if (index === Object.keys(obj).length - 1) {
let newData = {
...obj,
"text": currentValue
};
delete newData[currentKey];
assembledData.push(newData);
return;
}

for (let i = 0; i < currentValue.length; i++) {
let newObj = {
...obj,
[currentKey]: currentValue[i].value
};
delete newObj[currentKey];
assembleData(index + 1, newObj);
}
}

assembleData(0, {});

console.log(assembledData);
此代码将生成与您所期望的组装后的数据格式相匹配的结果。请注意,该代码假定原始数据中的列表是按照您的示例进行排序的。如果原始数据的顺序不同,可能需要进行适当的修改。

请注意,为了简化代码,上述示例假设每个对象中的列表是按照您的示例进行排序的。如果列表的顺序不同,可以根据需要进行相应的调整。

希望这可以解决您的问题!

Technologyforgood | 园豆:7775 (大侠五级) | 2023-07-01 23:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册