商品规格数组-如何组合出不通的规格。

const arr = [{
  "name": "color",
  "options": ["红色", "绿色"]
},
{
  "name": "size",
  "options": ["s", "m"]
}]

color和size 的key 从name 拿
如何两两组合最后输出下面格式,并希望能通用,比如3个数组的时候。

[{
 "price": '',
 "stock": '',
 "color": "红色",
 "size": "s"
},
{
 "price": '',
 "stock": '',
 "color": "红色",
 "size": "m"
},
{
 "price": '',
 "stock": '',
 "color": "绿色",
 "size": "s"
},
{
 "price": '',
 "stock": '',
 "color": "绿色",
 "size": "m"
}]
阅读 1.6k
1 个回答
[{
  "name": "color",
  "options": ["红色", "绿色"]
},
{
  "name": "size",
  "options": ["s", "m"]
},
{
  "name": "price",
  "options": ["1", "2"]
}].reduce(function(d, item){
    return d.reduce(function(c, citem){
        var so = JSON.stringify(citem)
        return c.concat(item.options.map(function(option){
            var o = JSON.parse(so)
            o[item.name] = option
            return o
        }))
    }, [])
}, [{}])
推荐问题