Giả sử chúng ta có hai mảng nguyên thủy như sau:
const arr1= ['a', 'b', 'c']; const arr2= ['d', 'e', 'f'];
Chúng ta cần viết một hàm JavaScript nhận hai mảng như vậy và xây dựng tất cả các tổ hợp có thể từ các mảng.
Với hai mảng này, đầu ra sẽ trông như:
const output = [ad, ae, af, bd, be, bf, cd, ce, cf];
Ví dụ
Mã thực hiện:
const arr1= ['a', 'b', 'c'];
const arr2= ['d', 'e', 'f'];
const combineArrays = (...arr) => {
const res = [];
const combinePart = (part, index) => {
arr[index].forEach(el => {
const p = part.concat(el);
if(p.length === arr.length){
res.push(p.join(''));
return;
}
combinePart(p, index + 1);
});
};
combinePart([], 0);
return res;
}
console.log(combineArrays(arr1, arr2));
Kết quả
Kết quả trong console:
[ 'ad', 'ae', 'af', 'bd', 'be', 'bf', 'cd', 'ce', 'cf' ]