給定一個二維數組(矩陣),如何使用JavaScript進行矩陣的轉置?下面本篇文章就來給大家介紹一下使用JavaScript轉置二維數組的方法,希望對大家有所幫助。
原文地址:如何使用JavaScript轉置二維數組?
方法1:
● 將二維數組存儲到變量中。
● 顯示二維數組(矩陣)內容。
● 調用map()方法,它爲數組中的每個元素提供一次回調函數,相對於數組對角線調換數組中元素的位置。
示例:使用array.map()方法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body style = "text-align:center;">
<p id = "Array" style = "font-size: 16px; font-family: sans-serif; font-weight: bold;"></p>
<button onclick = "Run()"> 點擊這裏</button>
<p id = "Array_DOWN" style = "color:green; font-size: 20px; font-weight: bold;"></p>
<script>
var el_up = document.getElementById("Array");
var el_down = document.getElementById("Array_DOWN");
var array = [
[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
];
el_up.innerHTML = "[ [ " + array[0] + " ] ], [ [ "
+ array[1] + " ] ], [ [ " + array[2] + " ] ]";
function transpose(mat) {
for (var i = 0; i < mat.length; i++) {
for (var j = 0; j < i; j++) {
const tmp = mat[i][j];
mat[i][j] = mat[j][i];
mat[j][i] = tmp;
}
}
}
function Run() {
array = array[0].map((col, i) => array.map(row => row[i]));
el_down.innerHTML = "[ [ " + array[0] + " ] ], [ [ "
+ array[1] + " ] ], [ [ " + array[2] + " ] ]";
}
</script>
</body>
</html>
效果圖:
方法2:
● 將二維數組存儲到變量中。
● 將數組中的每個元素替換爲其相對於數組對角線的鏡像。
示例:創建一個函數,該函數用鏡像替換每個元素以獲取數組的轉置。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body style = "text-align:center;">
<p id = "Array" style = "font-size: 16px; font-family: sans-serif; font-weight: bold;"></p>
<button onclick = "gfg_Run()"> 點擊這裏</button>
<p id = "Array_DOWN" style = "color:red; font-size: 20px; font-weight: bold;"></p>
<script>
var el_up = document.getElementById("Array");
var el_down = document.getElementById("Array_DOWN");
var array = [
[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
];
el_up.innerHTML = "[ [ " + array[0] + " ] ], [ [ "
+ array[1] + " ] ], [ [ " + array[2] + " ] ]";
function transpose(mat) {
for (var i = 0; i < mat.length; i++) {
for (var j = 0; j < i; j++) {
const tmp = mat[i][j];
mat[i][j] = mat[j][i];
mat[j][i] = tmp;
}
}
}
function gfg_Run() {
transpose(array);
el_down.innerHTML = "[ [ " + array[0] + " ] ], [ [ "
+ array[1] + " ] ], [ [ " + array[2] + " ] ]";
}
</script>
</body>
</html>
效果圖:
推薦閱讀: