JavaScript中的蜗牛足迹问题
假设我们有一个像这样的数组-
const arr = [ [1, 2, 3, 4], [12,13,14,5], [11,16,15,6], [10,9, 8, 7] ];
该数组绑定为一个正方形矩阵。
我们需要编写一个JavaScript函数,该函数接受此数组,并通过获取元素并不断旋转直到其收敛到中心来构造一个新的数组。蜗牛的踪迹绕着矩阵的外部向内盘旋。
因此,上述数组的输出应为-
const output = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
因此,让我们为该函数编写代码。我们将使用递归解决此问题。
示例
为此的代码将是-
const arr = [
[1, 2, 3, 4],
[12,13,14,5],
[11,16,15,6],
[10,9, 8, 7]
];
const spiralForm = arr => {
return arr.length > 1 ?
arr.splice(0,1)[0]
.concat(spiralForm(arr[0].map((c, i) => {
return arr.map(r => r[i]);
})
.reverse())) :
arr[0]
}
console.log(spiralForm(arr));输出结果
控制台中的输出将为-
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短