Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm cách nào để chèn một phần tử vào tất cả các vị trí trong một mảng bằng cách sử dụng đệ quy - JavaScript?

Chúng tôi bắt buộc phải khai báo một hàm, giả sử như insertAllPositions, có hai đối số -

một phần tử, x và một mảng, arr. Các hàm phải trả về một mảng các mảng, với mỗi mảng tương ứng với arr với x được chèn vào một vị trí có thể.

Nghĩa là, nếu arr có độ dài N, thì kết quả là một mảng có N + 1 mảng -

Ví dụ:kết quả của insertAllPositions (10, [1,2,3]) phải là -

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

Chúng tôi bắt buộc phải viết hàm này hoàn toàn bằng cách sử dụng đệ quy.

Ví dụ

Sau đây là mã -

 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)); 

Đầu ra

Điều này sẽ tạo ra kết quả sau trên bảng điều khiển -

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