Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tạo hoán vị của mảng với số phần tử cho trước trong JavaScript

Viết hàm JavaScript nhận vào mảng các giá trị literals làm đối số đầu tiên và một số làm đối số thứ hai. Hàm phải xây dựng mảng chứa tất cả các mảng con có độ dài bằng số được chỉ định, bao gồm mọi hoán vị có thể của các phần tử mảng đầu vào.

Ví dụ: với arr = ['k', 5] và num = 3, kết quả sẽ là 8 mảng con độ dài 3.

Ví dụ

const arr = ['k', 5];
const num = 3;
const allPairs = (arr = [], num) => {
  const res = [];
  if (num === 0) return [[]];
  const subResult = allPairs(arr, num - 1);
  for (let el of arr) {
    for (let sub of subResult) {
      res.push([el].concat(sub));
    }
  }
  return res;
};
console.log(allPairs(arr, num));

Kết quả

[ ['k','k','k'], ['k','k',5], ['k',5,'k'], ['k',5,5], [5,'k','k'], [5,'k',5], [5,5,'k'], [5,5,5] ]