[ 转 ]多个数组的每一项互相拼接(多个产品属性结合)

今天看到别人的博客,我用起不顺手,改了一下,不知道有没有什么没有考虑到
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
    <title></title>
</head>
<body>

<script type="text/javascript">
    //自己写的方法
    var models = [['BMW X1','BMW X3','BMW X5','BMW X6'],['RED','BLUE','GREEN'],['低配','中配','高配'],['进口','国产']]; 
    var resultArr=[];
    test();
    function test(){
        for (var i = 0; i < models[0].length; i++) {
                for (var j = 0; j < models[1].length; j++) {
                    for (var y = 0; y < models[2].length; y++) {
                        for (var z = 0; z < models[3].length; z++) {
                            resultArr.push(models[0][i]+'-'+models[1][j]+'-'+models[2][y]+'-'+models[3][z]);
                        };
                       
                    };
                };
        };
    }
    console.log(resultArr);
   



    //网上找的方法
    var models = [['BMW X1','BMW X3','BMW X5','BMW X6'],['RED','BLUE','GREEN'],['低配','中配','高配'],['进口','国产']]; 
    var mLen = models.length; 
    var index = 0; 
     
    var digui = function (arr1,arr2) { 
        // console.log("enter digui",arr1,arr2); 
        var res = []; 
        arr1.forEach(function (m) { 
            arr2.forEach(function (n) { 
                res.push(m+" - "+n); 
            }) 
        }); 
        index ++; 
        if(index<= mLen-1){ 
            return digui(res,models[index]) 
        }else{ 
            return res; 
        } 
    }; 
    var resultArr = []; 
    if(mLen >= 2){ 
        resultArr = digui(models[index],models[++index]); 
    }else{ 
        resultArr = models[0]; 
    } 
    console.log(resultArr); 
</script>
</body>
</html>

猜你喜欢

转载自153276149.iteye.com/blog/2308216
今日推荐