对编码非常陌生,所以请多多包涵。我正在尝试在 Codewars 上解决这个 Kata:https ://www.codewars.com/kata/snail/train/javascript
基本上给定一个数组
[
[1, 2, 3, 4],
[12,13,14,5],
[11,16,15,6],
[10,9, 8, 7]
];
它会返回[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]。
围绕矩阵外部和内部的蜗牛轨迹。
我只是解决矩阵是 nxn 的情况,其中 n > 1 并且现在是偶数。
我通过在函数外部声明 outputarray 来使其工作,但我希望在函数内声明该数组,因此包含以下行: var outputarray = outputarray || [];
不知道我哪里出错了。
snail = function(array) {
if (array.length == 0) {
return outputarray
}
var n = array[0].length - 1;
var outputarray = outputarray || [];
for (var i = 0; i <= n; i++) {
outputarray.push(array[0].splice(0, 1));
}
for (var i = 1; i <= n; i++) {
outputarray.push(array[i].splice(n, 1));
}
for (var i = n - 1; i >= 0; i--) {
outputarray.push(array[n].splice(i, 1));
}
for (var i = n - 1; i > 0; i--) {
outputarray.push(array[i].splice(0, 1));
}
array.pop();
array.shift();
snail(array);
}
蝴蝶不菲
MMTTMM
跃然一笑
相关分类