let f = (a, b) => [].concat(...a.map(a => b.map(b => [].concat(a, b))));
let cartesian = (a, b, ...c) => b ? cartesian(f(a, b), ...c) : a;
let output = cartesian(['Xanh','Cam'],['M','L'],['Vãi','Cotton','Nhựa']);
console.log(output);
Link Jsfiddle: https://jsfiddle.net/5am7rz0u/
Kết quả:
[["Xanh","M","Vãi"],["Xanh","M","Cotton"],["Xanh","M","Nhựa"],["Xanh","L","Vãi"],["Xanh","L","Cotton"],["Xanh","L","Nhựa"],["Cam","M","Vãi"],["Cam","M","Cotton"],["Cam","M","Nhựa"],["Cam","L","Vãi"],["Cam","L","Cotton"],["Cam","L","Nhựa"]]
Không có nhận xét nào:
Đăng nhận xét