Я хочу, чтобы генерировать все возможные варианты продукт может быть на основе атрибутов, таких как цвет, размер и т.д. Я пытаюсь реализовать solution дается profitphp в javascript, но не получая желаемых результатов.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"]
Любая помощь в значительной степени оценили. Благодарю.
Все, что вам нужно, это рассчитать декартовое произведение вашего входного массива, чтобы получить возможные комбинации. Возможно, эта ссылка может помочь. Посмотрите на answer.http: //stackoverflow.com/questions/12303989/cartesian-product-of-multiple-arrays-in-javascript –
@Farooq Спасибо, что указали мне в правильном направлении. – codeit