0

色、サイズなどの属性に基づいて、製品が持つことができるすべてのバリエーションを生成したいと考えています。profitphpによって提供されたソリューションを JavaScript で実装しようとしていますが、望ましい結果が得られません。

これが私が実装したものです:

var data = [['red', 'blue', 'green'],['small', 'medium', 'large']];

result = generateVariants(data);
console.log(result);

function generateVariants(data,prefix) {
    if (typeof prefix === 'undefined') {
        prefix = '';
    }

    var result = [];
    var attribute = data.shift();

    $.each(attribute, function(key,val) {
        if (data instanceof Array && data.length > 0) {
            result = result.concat(generateVariants(data, val + ' '));
        }
        else {
            result.push(prefix + val);
        }
    });

    return result;
}

期待される結果:

["red small", "red medium", "red large", "blue small", "blue medium", "blue large", "green small", "green medium", "green large"]

代わりに、私はこれを得ています:

["red small", "red medium", "red large", "blue", "green"]

どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1