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 có 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 giữa. Một đường mòn ốc sên bao 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];Do đó, hãy viết mã cho chức năng này. Chúng tôi sẽ giải quyết vấn đề này bằng cách sử dụng đệ quy.
Ví dụ
Mã cho điều này sẽ là -
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
Đầu ra trong bảng điều khiển sẽ là -
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]