Diagonal Traverse LeetCode solution in JavaScript
1var findDiagonalOrder = function (matrix) {2const res = [];3for (4let r = 0,5c = 0,6d = 1,7i = 0,8len = matrix.length * (matrix[0] || []).length;9i < len;10i++11) {12res.push(matrix[r][c]);13r -= d;14c += d;15if (!matrix[r] || matrix[r][c] === undefined) {16// We've fallen off the...17if (d === 1) {18if (matrix[r + 1] && matrix[r + 1][c] !== undefined) {19// ...top cliff20r++;21} else {22// ...right cliff23r += 2;24c--;25}26} else {27if (matrix[r] && matrix[r][c + 1] !== undefined) {28// ...left cliff29c++;30} else {31// ...bottom cliff32r--;33c += 2;34}35}36d = -d;37}38}39return res;40};