原始数据:
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/重辣"
}
]
可以吧你的问题描述清楚, 这样其他人才好回答问题.
根据您提供的原始数据,您希望将其组装为特定的数据格式。下面是一个可能的解决方案,使用嵌套循环来遍历原始数据并生成目标数据格式:
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);
此代码将生成与您所期望的组装后的数据格式相匹配的结果。请注意,该代码假定原始数据中的列表是按照您的示例进行排序的。如果原始数据的顺序不同,可能需要进行适当的修改。
请注意,为了简化代码,上述示例假设每个对象中的列表是按照您的示例进行排序的。如果列表的顺序不同,可以根据需要进行相应的调整。
希望这可以解决您的问题!