JavaScript常見數(shù)組方法之如何轉置矩陣
今天這篇文章就是來和大家詳細聊聊JavaScript常見數(shù)組方法,不知道大家有沒有學過線性代數(shù)呢,如果學過那么矩陣轉置那可就太熟悉了。
今天我想試試能不能用數(shù)組來實現(xiàn)矩陣轉置呢?
想知道,那就接著往下看吧。希望大家讀完有所收獲,那我辛苦碼字也就值了。
一、常見二維數(shù)組操作
??創(chuàng)建與遍歷
在前面的篇章中,已經(jīng)學習了一維數(shù)組的各種創(chuàng)建方式,了解一維數(shù)組如何創(chuàng)建后,二維數(shù)組的創(chuàng)建就非常的簡單了,只需將數(shù)組元素設置為數(shù)組即可。

?? 在創(chuàng)建完二維數(shù)組后,如何遍歷二維數(shù)組中的元素,對其進行操作呢?
- 一維數(shù)組可以利用for、for…in或for…of(ES6提供)進行遍歷。
- 二維數(shù)組只需在遍歷數(shù)組后,再次遍歷數(shù)組的元素即可。
另外,在Web項目開發(fā)中,還經(jīng)常通過多維空數(shù)組添加元素的方式來創(chuàng)建多維數(shù)組。下面以添加二維空數(shù)組元素為例進行演示。

若要為二維數(shù)組元素(如arr[i][0])賦值,首先要保證添加的元素(如arr[i])已經(jīng)被創(chuàng)建為數(shù)組,否則程序會報“Uncaught TypeError……”錯誤。
??注意
在創(chuàng)建多維數(shù)組時,雖然JavaScript沒有限制數(shù)組的維數(shù),但是在實際應用中,為了便于代碼閱讀、調試和維護,推薦使用三維及以下的數(shù)組保存數(shù)據(jù)。
??【案例】二維數(shù)組轉置
二維數(shù)組的轉置指的是將二維數(shù)組橫向元素保存為縱向元素。

代碼實現(xiàn)思路:
- 找規(guī)律:res[0][0] = arr[0][0]、res[0][1] = arr[1][0]、res[0][2] = arr[2][0]。
- 得結論: res[i][j] = arr[j][i]。②
- res數(shù)組長度=arr元素(如arr[0])的長度。③
- res元素(如res[0])的長度=arr數(shù)組的長度。④
- 按照③和④完成res的創(chuàng)建與遍歷,按②進行轉置。
為了讓你們有成就感我就不貼代碼了,有問題可以在評論區(qū)提出。其實矩陣完全可以存在數(shù)組里,以后做矩陣轉置直接運行代碼就行了。
二、常見數(shù)組方法
??棧和隊列方法
JavaScript中,除了前面講解的添加與刪除數(shù)組元素的方式外,還可以利用Array對象提供的方法,模擬棧和隊列的操作。
- 在數(shù)組的末尾或開頭添加數(shù)組的新元素。
- 在數(shù)組的末尾或開頭刪除數(shù)組元素。

- push()和unshift()方法的返回值是新數(shù)組的長度。
- pop()和shift()方法返回的是移出的數(shù)組元素。
??檢索方法
在開發(fā)中,若要檢測給定的值是否是數(shù)組,或是查找指定的元素在數(shù)組中的位置。

表中除了Array.isArray()方法外,其余方法默認都是從指定數(shù)組索引的位置開始檢索,且檢索方式與運算符“===”相同,即只有全等時才會返回比較成功的結果。
?includes()和Array.isArray()方法

- includes()方法的第1個參數(shù)表示待查找的值。
- includes()方法的第2個參數(shù)用于指定在數(shù)組中查找的下標。
- 設置為大于數(shù)組長度時,數(shù)組不會被檢索,直接返回false。
- 設置為小于0的數(shù)時,則檢索的索引位置等于數(shù)組長度加上指定的負數(shù),若結果仍是小于0的數(shù),則檢索整個數(shù)組。
?indexOf()方法
indexOf()用于在數(shù)組中從指定下標位置,檢索到的第一個給定值,存在則返回對應的元素下標,否則返回-1。
?? 注意
indexOf()方法的第2個參數(shù)用于指定開始查找的下標:
- 當其值大于或等于數(shù)組長度時,直接返回-1。
- 當其值為負數(shù)時,則查找的下標位置等于數(shù)組長度加上指定的負數(shù),若結果仍是小于0的數(shù),則檢索整個數(shù)組。
?lastIndexOf()方法
Array對象提供的lastIndexOf()方法,用于在數(shù)組中從指定下標位置檢索到的最后一個給定值的下標。與indexOf()檢索方式不同的是,lastIndexOf()方法默認逆向檢索,即從數(shù)組的末尾向數(shù)組的開頭檢索。
??注意
lastIndexOf()方法的第2個參數(shù)用于指定查找的下標,且由于其采用逆向的方式檢索:
當其值大于或等于數(shù)組長度時,則整個數(shù)組都會被查找。
當其值為負數(shù)時,則索引位置等于數(shù)組長度加上給定的負數(shù),若其值仍為負數(shù),則直接返回-1。
??數(shù)組轉字符串
開發(fā)中若需要將數(shù)組轉換為字符串時,則可以利用JavaScript提供的方法實現(xiàn)。


??join()和toString()方法的相同點:
- 可將多維數(shù)組轉為字符串,默認情況下使用逗號連接。
- 當數(shù)組元素為undefined、null或空數(shù)組時,對應的元素會被轉換為空字符串
??join()和toString()方法的不同點:
- join()方法可以指定連接數(shù)組元素的符號。
??其他方法
除了前面講解的幾種常用方法外,JavaScript還提供了很多其他常用的數(shù)組方法。例如,合并數(shù)組、數(shù)組淺拷貝、顛倒數(shù)組元素的順序等。

??注意
- slice()和concat()方法在執(zhí)行后返回一個新的數(shù)組,不會對原數(shù)組產(chǎn)生影響,剩余的方法在執(zhí)行后皆會原數(shù)組產(chǎn)生影響。
- splice()方法的第1個參數(shù)的值等于或大于數(shù)組長度時,從數(shù)組末尾開始操作;當該值為負數(shù)時,則下標位置等于數(shù)組長度加上指定的負數(shù),若其值仍為負數(shù),則從數(shù)組的開頭開始操作。
總結
到此這篇關于JavaScript常見數(shù)組方法之如何轉置矩陣的文章就介紹到這了,更多相關JavaScript數(shù)組轉置矩陣內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JavaScript數(shù)據(jù)類型檢測實現(xiàn)方法詳解
Javascript中檢查數(shù)據(jù)類型一直是老生常談的問題,類型判斷在web開發(fā)中也有著非常廣泛的應用,所以下面這篇文章主要給大家介紹了關于JS數(shù)據(jù)類型檢測的那些事,需要的朋友可以參考下2022-11-11
Three.js開發(fā)實現(xiàn)3D地圖的實踐過程總結
這篇文章主要給大家介紹了關于利用Three.js開發(fā)實現(xiàn)3D地圖的實踐過程,文中通過示例代碼介紹的非常詳細,對大家學習或者使用three.js具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-11-11
js實現(xiàn)帶關閉按鈕始終顯示在網(wǎng)頁最底部工具條的方法
這篇文章主要介紹了js實現(xiàn)帶關閉按鈕始終顯示在網(wǎng)頁最底部工具條的方法,是非常實用的javascript固定效果,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03

