Javascript 创建产品的变体
我正在寻找一种有效的方法来对不同类型的产品变体进行分组 我有这个Javascript 创建产品的变体,javascript,json,object,Javascript,Json,Object,我正在寻找一种有效的方法来对不同类型的产品变体进行分组 我有这个json文件,在每个产品中我都有不同类型的属性 Attributes: [ {title: color, labels: [{title: red}, {title: blue}]}, {title: brand, labels: [{title: nike}, {title: rebook}]}, {title: size, labels: [{title: 38}, {title: 40}] ]
json
文件,在每个产品中我都有不同类型的属性
Attributes: [
{title: color, labels: [{title: red}, {title: blue}]},
{title: brand, labels: [{title: nike}, {title: rebook}]},
{title: size, labels: [{title: 38}, {title: 40}]
]
它可以有更多/更少的属性
Attributes: [
{title: color, labels: [{title: red}, {title: blue}]},
{title: brand, labels: [{title: nike}, {title: rebook}]},
{title: size, labels: [{title: 38}, {title: 40}]
]
我需要创建一个高效的函数,该函数将返回:
variants: [
'red nike 38',
'red nike 40',
'blue nike 38',
'blue nike 40',
'red rebook 38',
'red rebook 40',
'blue rebook 38',
'blue rebook 40'
]
因为您有json文件(从中检索数据),所以属性值应该是string
或number
格式
格式化数据
以下是解决方案:
//输入数据
数据=[{
标题:“颜色”,
标签:[{
标题:“红色”
}, {
标题:“蓝色”
}]
},
{
标题:“品牌”,
标签:[{
标题:“耐克”
}, {
标题:“重新预订”
}]
},
{
标题:“尺寸”,
标签:[{
标题:38
}, {
标题:40
}]
}
]
//数据修饰符-修改reducer方法的数据(将返回数组数组,其中包含每个属性的值)
函数修饰符(数据){
返回data.map(a=>a.labels.map(b=>b.title))
}
//reducer—将数据转换为所需格式
功能减速机(数据){
返回数据.reduce((a,b)=>a.reduce((r,v)=>r.concat(b.map(w=>[].concat(v,w)),[])).map(i=>i.join(“”))
}
//输出-结果数据
输出=减速机(修改器(数据))
document.write(output)
乍一看,最有效的方法是在JSON对象上进行某种循环,如果添加到目前为止尝试过的代码,将更容易获得帮助