Javascript 如何在js中生成以下内容的组合

Javascript 如何在js中生成以下内容的组合,javascript,arrays,Javascript,Arrays,我看到了与此类似的问题,但我的案例场景不同 我有一个这样结构的数组: var options = { 'color': ['red', 'green'], 'size': ['L', 'XS'], 'dimensions': ['dim1'] }; 我想在下面的结构中生成组合 { 'red,L,dim1': [ {'color': 'red'}, {'size': 'L'}, {'dimensions': 'dim1'}, ], 'red,XS,dim1': [

我看到了与此类似的问题,但我的案例场景不同

我有一个这样结构的数组:

var options = {
  'color': ['red', 'green'],
  'size': ['L', 'XS'],
  'dimensions': ['dim1']
};
我想在下面的结构中生成组合

 {
 'red,L,dim1': [
  {'color': 'red'},
  {'size': 'L'},
  {'dimensions': 'dim1'},
 ],
 'red,XS,dim1': [
  {'color': 'red'},
  {'size': 'XS'},
  {'dimensions': 'dim1'},
 ],
 'green,L,dim1': [
  {'color': 'green'},
  {'size': 'L'},
  {'dimensions': 'dim1'},
 ],
 'green,XS,dim1': [
  {'color': 'green'},
  {'size': 'XS'},
  {'dimensions': 'dim1'},
 ],
};
我怎样才能做到这一点?
我很感激任何帮助

好的,所以花了一段时间后我就明白了

options = ['color', 'size'];
optionsValues= [['Red','Blue'], ['L', 'XS']];

function combination() {
    var r = [], arg = arguments[0], max = arg.length-1;
    function helper(arr, i) {
        for (var j=0, l=arg[i].length; j<l; j++) {
            var a = arr.slice(0); // clone arr
            var obj = {};
            obj[options[i]] = arg[i][j];
            a.push(obj); 
            if (i==max){
                str = '';
                for(var c = a.length - 1 ; c >= 0; c--){
                  if(c == 0){
                    str += a[c][options[c]];
                  }else{
                    str += a[c][options[c]] + ',';
                  }
                }
                r[str] = a;
            }
            else
                helper(a, i+1);
        }
    }
    helper([], 0);
    return r;
}

console.log(combination(optionsValues));
options=['color','size'];
选项值=['Red','Blue'],['L','XS'];
函数组合(){
var r=[],arg=arguments[0],max=arg.length-1;
功能助手(arr,i){
对于(var j=0,l=arg[i]。长度;j=0;c--){
如果(c==0){
str+=a[c][options[c]];
}否则{
str+=a[c][options[c]+',';
}
}
r[str]=a;
}
其他的
助手(a,i+1);
}
}
助手([],0);
返回r;
}
console.log(组合(选项值));

请告诉我们,到目前为止,您编写了哪些代码来解决您的问题,以及您从何处受到影响?一个简单的方法是循环颜色数组,然后嵌套在此循环中,遍历大小数组,然后嵌套在该数组中,遍历维度数组。在最内部的循环中,您可以访问所有值(颜色、大小、尺寸),然后您可以将这些值连接到一个键,并将其添加到循环之前定义的新对象中。但实际上,您应该尝试一些东西,并向我们展示您在问题中的方法。