[英]How do I get the diagonal values in an array?
我正在嘗試編寫一個程序,該程序采用 3 行和 3 列的對角線值。
數組本身是:
[4, 2, 5]
[1, 8, 3]
[4, 3, 9]
...而 output 應該是:
[4, 8, 9]
或相反:
[5, 8, 4]
到目前為止我有這個:
var DIAGONAL_TOP_LEFT_BOTTOM_RIGHT = 0;
var DIAGONAL_BOTTOM_LEFT_TOP_RIGHT = 1;
function start(){
var grid = new Grid(3, 3);
grid.initFromArray([
[4, 2, 5], // 0th row
[1, 8, 3], // 1st row
[4, 3, 9] // 2nd row]);
var diagonal =
}
function getDiagonal(grid, whichDiagonal){
var diagonalList = [];
for(var col = 0; col < grid.getCols(); col++){
for(var row = 0; row < grid.getRows(); row++){
println(col);
var cur = grid.get(row,col);
println(cur);
}
}
}
}
我不太確定 go 從這里到哪里。 任何幫助表示贊賞!
你可以使用map
- 第二個參數是索引,所以這個腳本在第一個數組中找到第一個值,第二個在第二個等等......
const matrix = [ [4, 2, 5], [1, 8, 3], [4, 3, 9]]; console.log('↘️', matrix.map((a, i) => a[i])); console.log('↗️', [...matrix].reverse().map((a, i) => a[i]));
function diag()
將返回任何二維矩陣的對角線:
const arr=[[4, 2, 5], [1, 8, 3],[4, 3, 9]]; const diag=a=>a.map((v,i)=>v[i]); console.log(diag(arr));
我們首先要檢查以確保矩陣是一個完美的正方形(嵌套 arrays 的長度與每個數組的項目數相同)。
isValidMatrix()
function 我添加了檢查以確保矩陣數組是有效數組,每個子數組也是與父矩陣長度相同的有效數組。
之后,我添加了兩個單獨的函數getDiag1()
和getDiag2()
。 第一個 function 將每個嵌套數組映射到其中具有與其嵌套數組相同索引的任何元素。 換句話說,它將從第一個數組中獲取第一項,從第二個中獲取第二項,依此類推。 我們這樣做: row[i]
相反,第二個 function 將從第一個數組中獲取最后一個數組項,從第二個數組中獲取倒數第二個數組項,依此類推。 我們這樣做: row[row.length-i-1]
let matrix = [[4, 2, 5], [1, 8, 3], [4, 3, 9]]; const isValidMatrix = matrix => Array.isArray(matrix) && matrix.every(row => Array.isArray(row) && row.length === matrix.length) const getDiag1 = matrix => isValidMatrix(matrix) && matrix.map((row,i) => row[i]); const getDiag2 = matrix => isValidMatrix(matrix) && matrix.map((row,i) => row[row.length-i-1]); console.log(getDiag1(matrix), getDiag2(matrix));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.