在 JavaScript 中轉置陣列

Shraddha Paghdar 2023年10月12日
  1. 什麼是矩陣轉置
  2. 在 JavaScript 中使用 map() 方法轉置陣列
在 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 函式接受三個引數。

  1. element 是一個必需引數,表示在陣列中處理的當前元素。
  2. index 是一個可選引數,表示在陣列中處理的元素的當前索引。
  3. 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 Paghdar avatar Shraddha Paghdar avatar

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

相關文章 - JavaScript Array