在 JavaScript 中轉置陣列
與許多其他程式語言一樣,JavaScript 中的物件可以與現實生活中的物件進行比較。
在 JavaScript 中,物件是具有屬性和型別的獨立實體。例如,自行車是具有顏色、設計、型號、品牌等的物件。
陣列是特殊型別的物件,其鍵是數字預定義的。任何 JavaScript 物件都可以轉換為陣列。
陣列必須使用整數而不是字串作為元素索引。本文介紹瞭如何在 JavaScript 中轉置陣列。
什麼是矩陣轉置
轉置矩陣是通過線性代數將矩陣轉換為矩陣概念的最常用方法之一。通過將給定矩陣的行更改為列以及將列更改為行來獲取矩陣的轉置。
它在要獲得矩陣的逆矩陣和伴隨矩陣的應用中特別有用。
二維陣列是具有共同名稱的元素的集合,並被組織為行和列的陣列。二維陣列是陣列的陣列,所以讓我們建立一個一維陣列物件的陣列。
在 JavaScript 中使用 map()
方法轉置陣列
由於為呼叫陣列的每個元素呼叫提供的函式,map()
方法會建立一個新陣列。該對映按順序為陣列的每個元素呼叫一次提供的 callbackFn
函式,並根據結果建立一個新陣列。
callbackFn
僅對具有賦值的陣列索引(包括未定義的索引)呼叫;由於缺少陣列元素,即從未配置過的索引和已刪除的索引,它不會被呼叫。
語法:
// Arrow function
map((element, index) => { /* Perform operation */ })
// Callback function
map(callbackFn, thisArg)
// Inline callback function
map(function(element, index, array) { /* Perform operation */ }, thisArg)
callbackFn
是為每個陣列元素呼叫的函式。每次執行 callbackFn
時,都會將返回值新增到 newArray
。
callbackFn
函式接受三個引數。
element
是一個必需引數,表示在陣列中處理的當前元素。index
是一個可選引數,表示在陣列中處理的元素的當前索引。array
是一個可選引數,表示被呼叫的陣列對映。
thisArg
是一個可選引數,表示執行 callbackFn
時的值。此引數返回一個新陣列,其中陣列的每個元素都是回撥函式的輸出。
你可以在 map()
的文件中找到有關地圖的更多資訊。
我們以 OS Array 為例;我們將建立一個 OS 的二維陣列並將它們轉置到新陣列中。
例子:
const osArray = [
['Linux','Windows','MacOS'],
['Linux','Windows','MacOS'],
['Linux','Windows','MacOS'],
];
const transposedOSArray = osArray[0].map((_, colIndex) => osArray.map(row => row[colIndex]));
console.log(transposedOSArray);
我們定義了一個二維陣列;我們使用帶有元素和列索引的 map
函式。使用巢狀的 map
函式再次迭代每個元素,並在行內返回該特定索引的元素。
在任何瀏覽器中執行上面的程式碼都會列印出類似這樣的內容。
輸出:
[['Linux', 'Linux', 'Linux'], ['Windows', 'Windows', 'Windows'], ['MacOS', 'MacOS', 'MacOS']]
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn