主题
回形打印一个二维数组
题目
有如下二维数组 let arr = [ ["a", "b", "c", "d", "e"], ["A", "B", "C", "D", "E"], ["M", "X", 1, 3], ["R", "5", "P", "Q", "e"], ["23", "O", "W"], ];
实现一个函数, 输入上面的arr, 输出 ['a', 'A', 'M', 'R', '23','O', 'W', 'e', 3, 'E','e', 'd', 'c', 'b', 'B','X', '5', 'P', 'Q', 1,'D', 'C']
实现
js
let fn= function (array) {
var result = [];
while (array.length) {
for (var i = 0; i < array.length - 1; i++) {
result.push(array[i].shift());
}
result = result.concat(array.pop() || []);
for (var i = array.length - 1; i >= 1; i--) {
result.push(array[i].pop());
}
let tmp = (array.shift() || []).reverse();
result = result.concat(tmp);
}
return result.filter((i) => i !== undefined);
};
let res = fn(arr);