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

Vấn đề đệ quy Snail Trail trong JavaScript

Giả sử, chúng ta có một mảng như thế này -

 const arr =[[1, 2, 3, 4], [12,13,14,5], [11,16,15,6], [10,9, 8, 7]];  

Mảng được ràng buộc là một ma trận vuông.

Chúng tôi được yêu cầu viết một hàm JavaScript nhận trong mảng này và xây dựng một mảng mới bằng cách lấy các phần tử và xoắn ốc vào cho đến khi nó hội tụ vào trung tâm. Một con ốc sên xoắn ốc xung quanh bên ngoài ma trận và bên trong.

Do đó, đầu ra cho mảng trên phải là -

 const output =[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]; 

Chúng tôi sẽ giải quyết vấn đề này bằng cách sử dụng đệ quy.

Ví dụ

Sau đây là mã -

 const arr =[[1, 2, 3, 4], [12,13,14,5], [11,16,15,6], [10,9, 8, 7]]; const xoắn ốc =arr => {return arr.length> 1? arr.splice (0,1) [0] .concat (cryptForm (arr [0] .map ((c, i) => {return arr.map (r => r [i]);}) .reverse ( ))):arr [0]} console.log (cryptForm (arr)); 

Đầu ra

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

 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]