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

Chèn phần tử vào tất cả vị trí trong mảng bằng đệ quy - JavaScript


Khai báo hàm insertAllPositions nhận hai tham số: phần tử x và mảng arr. Trả về mảng các mảng, mỗi mảng tương ứng arr với x chèn ở một vị trí khả thi.

Nếu arr độ dài N, kết quả là mảng N+1 mảng.

Ví dụ: insertAllPositions(10, [1,2,3]) =>

const output = [ 
  [10,1,2,3], 
  [1,10,2,3], 
  [1,2,10,3], 
  [1,2,3,10] 
];

Yêu cầu viết hàm thuần túy bằng đệ quy.

Ví dụ

Dưới đây là đoạn code:

const arr = [1, 2, 3]; 
const num = 10; 
const insertAllPositions = (num, arr) => { 
  return arr.length ? 
  [[num, ...arr]] 
  .concat(insertAllPositions(num, arr.slice(1)) 
  .map(el => { 
    return [arr[0]].concat(el); 
  })) : 
  [[num]] 
}; 
console.log(insertAllPositions(num, arr));

Kết quả

Đoạn code sẽ in ra console:

[ [ 10, 1, 2, 3 ], [ 1, 10, 2, 3 ], [ 1, 2, 10, 3 ], [ 1, 2, 3, 10 ] ]