Найти побочную диагональ двумерного массива js
var matrix4D = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; function_matrix(matrix4D); /* alert(matrix4D); */ function function_matrix(arr){ var n = arr.length; var step = Math.sqrt(arr.length) - 1; for (var i = step; i < n - step; i += step) { console.log(arr[i]); alert(arr[i]); } } Я ее нашел, но как сделать с такой матрицей как ниже ( выводит undefined ), помогите пожалуйста. ( должен вывести 3 6 2 и 9 ) var matrix4D = [ 1, 1, 1, 3, 1, 1, 6, 1, 1, 2, 1, 10, 9, 1, 1, 1, 1, 1, 11, 1 ]; или ( должен вывести 5 3 и 1 ) var matrix4D = [ 1, 2, 3, 4, 5, 1, 1, 1, 3, 4, 1, 1, 1, 1, 1, ]; |
Цитата:
|
Роман1479,
var matrix4D = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; var matrix4_D = [ 1, 1, 1, 3, 1, 1, 6, 1, 1, 2, 1, 10, 9, 1, 1, 1, 1, 1, 11, 1 ]; var matrix5D = [ 1, 2, 3, 4, 5, 1, 1, 1, 3, 4, 1, 1, 1, 1, 1 ]; function function_matrix(arr, num){ var l = Math.min(num, arr.length/num) var n = --num; var res = []; for (var i = 0; i < l; i++) { res.push(arr[n]) n += num } return res } alert(function_matrix(matrix4D, 4)); alert(function_matrix(matrix4_D, 4)); alert(function_matrix(matrix5D, 5)); |
Извините пожалуйста, значит все не правильно, можнте помочь написать тоже самое только с двумерным
|
Роман1479,
var matrix4D = [ [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1] ]; var matrix4_D = [ [1, 1, 1, 3], [1, 1, 6, 1], [1, 2, 1, 10], [9, 1, 1, 1], [1, 1, 11, 1] ]; var matrix5D = [ [1, 2, 3, 4, 5], [1, 1, 1, 3, 4], [1, 1, 1, 1, 1] ]; function function_matrix(arr){ var num = arr[0].length; var l = Math.min(num, arr.length) var n = --num; var res = []; for (var i = 0; i < l; i++) { res.push(arr[i][n]) --n } return res } alert(function_matrix(matrix4D)); alert(function_matrix(matrix4_D)); alert(function_matrix(matrix5D)); |
Такой еще вариант предложу...
var matrix4D = [ [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1] ]; var matrix4_D = [ [1, 1, 1, 3], [1, 1, 6, 1], [1, 2, 1, 10], [9, 1, 1, 1], [1, 1, 11, 1] ]; var matrix5D = [ [1, 2, 3, 4, 5], [1, 1, 1, 3, 4], [1, 1, 1, 1, 1] ]; alert(function_matrix(matrix4D)); alert(function_matrix(matrix4_D)); alert(function_matrix(matrix5D)); function function_matrix(arr){ var col = arr[0].length; var row = 0; var res = []; while ((col > -1) && (row < arr.length)) { res.push(arr[row++][--col]); } return res }; |
Часовой пояс GMT +3, время: 05:14. |