【发布时间】:2016-08-31 12:34:13
【问题描述】:
我想根据颜色、尺寸等属性生成产品可能具有的所有变体。我正在尝试在 javascript 中实现 profitphp 给出的solution,但不是得到想要的结果。
这是我实现的:
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"]
非常感谢任何帮助。谢谢。
【问题讨论】:
-
您只需计算输入数组的笛卡尔积以获得可能的组合。也许这个链接可以提供帮助。看答案stackoverflow.com/questions/12303989/…
-
@Farooq 感谢您为我指明正确的方向。
-
嘿检查我的代码here
标签: javascript algorithm e-commerce variants