reduce()函数使用。ruduce()函数第一次计算时将数组的前两个元素进行”组合“(这里的组合可以是数值计算,字符串操作,数组操作,取决于你的使用场景),返回"组合”结果并于下一个元素进行同样的操作,直到最后一个元素操作完
var year = ['2019', '2020'];
var color = ['白色', '灰色', '蓝色'];
var size = ['S', 'M', 'L'];
var list = [year, color, size];
function calcDescartes(array) {
if (array.length < 2) return array[0] || [];
return array.reduce((total, currentValue) => {
let res = [];
total.forEach(t => {
currentValue.forEach(cv => {
if (t instanceof Array) // 或者使用 Array.isArray(t)
res.push([...t, cv]);
else
res.push([t, cv]);
})
})
return res;
})
}
console.log(calcDescartes(list));