serendipityApe / javascriptPromotion

资深前端必备的编码问题
3 stars 0 forks source link

二维数组花式循环 #10

Open serendipityApe opened 2 years ago

serendipityApe commented 2 years ago

题目

decode message

例子

I B C A L K A
D R F C A E A
G H O E L A D 

上述二维数组, 1:从左上角开始 2:向右下遍历,直至无法到达右下 3:向右上遍历,直至无法到达右上,重复2 4:直至无法到达右上和右下,返回所走的路径

例子答案为IROCLED

答案

function decode(message) {
  // your code here
  let i=0,j=0; 
  const cols=message[0]?.length; //无值返回undefined
  let res='',step=1;
  while(j < cols){
    res+=message[i][j];
    //到数组底部反转
    if(!message[i+step]){
      step *= -1;
    }
    i += step;
    j++;
  }
  return res;
}