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对象上进行某种循环,如果添加到目前为止尝试过的代码,将更容易获得帮助