欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript常見數(shù)組方法之如何轉(zhuǎn)置矩陣

 更新時(shí)間:2022年03月10日 09:17:08   作者:微風(fēng)洋洋  
這篇文章主要給大家介紹了關(guān)于JavaScript常見數(shù)組方法之如何轉(zhuǎn)置矩陣的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

今天這篇文章就是來和大家詳細(xì)聊聊JavaScript常見數(shù)組方法,不知道大家有沒有學(xué)過線性代數(shù)呢,如果學(xué)過那么矩陣轉(zhuǎn)置那可就太熟悉了。

今天我想試試能不能用數(shù)組來實(shí)現(xiàn)矩陣轉(zhuǎn)置呢?

想知道,那就接著往下看吧。希望大家讀完有所收獲,那我辛苦碼字也就值了。

一、常見二維數(shù)組操作

??創(chuàng)建與遍歷

在前面的篇章中,已經(jīng)學(xué)習(xí)了一維數(shù)組的各種創(chuàng)建方式,了解一維數(shù)組如何創(chuàng)建后,二維數(shù)組的創(chuàng)建就非常的簡單了,只需將數(shù)組元素設(shè)置為數(shù)組即可。

?? 在創(chuàng)建完二維數(shù)組后,如何遍歷二維數(shù)組中的元素,對(duì)其進(jìn)行操作呢?

  • 一維數(shù)組可以利用for、for…in或for…of(ES6提供)進(jìn)行遍歷。
  • 二維數(shù)組只需在遍歷數(shù)組后,再次遍歷數(shù)組的元素即可。

另外,在Web項(xiàng)目開發(fā)中,還經(jīng)常通過多維空數(shù)組添加元素的方式來創(chuàng)建多維數(shù)組。下面以添加二維空數(shù)組元素為例進(jìn)行演示。

若要為二維數(shù)組元素(如arr[i][0])賦值,首先要保證添加的元素(如arr[i])已經(jīng)被創(chuàng)建為數(shù)組,否則程序會(huì)報(bào)“Uncaught TypeError……”錯(cuò)誤。

??注意

在創(chuàng)建多維數(shù)組時(shí),雖然JavaScript沒有限制數(shù)組的維數(shù),但是在實(shí)際應(yīng)用中,為了便于代碼閱讀、調(diào)試和維護(hù),推薦使用三維及以下的數(shù)組保存數(shù)據(jù)。

??【案例】二維數(shù)組轉(zhuǎn)置

二維數(shù)組的轉(zhuǎn)置指的是將二維數(shù)組橫向元素保存為縱向元素。

代碼實(shí)現(xiàn)思路:

  • 找規(guī)律:res[0][0] = arr[0][0]、res[0][1] = arr[1][0]、res[0][2] = arr[2][0]。
  • 得結(jié)論: res[i][j] = arr[j][i]。②
  • res數(shù)組長度=arr元素(如arr[0])的長度。③
  • res元素(如res[0])的長度=arr數(shù)組的長度。④
  • 按照③和④完成res的創(chuàng)建與遍歷,按②進(jìn)行轉(zhuǎn)置。

為了讓你們有成就感我就不貼代碼了,有問題可以在評(píng)論區(qū)提出。其實(shí)矩陣完全可以存在數(shù)組里,以后做矩陣轉(zhuǎn)置直接運(yùn)行代碼就行了。

二、常見數(shù)組方法

??棧和隊(duì)列方法

JavaScript中,除了前面講解的添加與刪除數(shù)組元素的方式外,還可以利用Array對(duì)象提供的方法,模擬棧和隊(duì)列的操作。

  • 在數(shù)組的末尾或開頭添加數(shù)組的新元素。
  • 在數(shù)組的末尾或開頭刪除數(shù)組元素。

  • push()和unshift()方法的返回值是新數(shù)組的長度。
  • pop()和shift()方法返回的是移出的數(shù)組元素。

??檢索方法

在開發(fā)中,若要檢測給定的值是否是數(shù)組,或是查找指定的元素在數(shù)組中的位置。

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

?includes()和Array.isArray()方法

  • includes()方法的第1個(gè)參數(shù)表示待查找的值。
  • includes()方法的第2個(gè)參數(shù)用于指定在數(shù)組中查找的下標(biāo)。
  • 設(shè)置為大于數(shù)組長度時(shí),數(shù)組不會(huì)被檢索,直接返回false。
  • 設(shè)置為小于0的數(shù)時(shí),則檢索的索引位置等于數(shù)組長度加上指定的負(fù)數(shù),若結(jié)果仍是小于0的數(shù),則檢索整個(gè)數(shù)組。

?indexOf()方法

indexOf()用于在數(shù)組中從指定下標(biāo)位置,檢索到的第一個(gè)給定值,存在則返回對(duì)應(yīng)的元素下標(biāo),否則返回-1。

?? 注意

indexOf()方法的第2個(gè)參數(shù)用于指定開始查找的下標(biāo):

  • 當(dāng)其值大于或等于數(shù)組長度時(shí),直接返回-1。
  • 當(dāng)其值為負(fù)數(shù)時(shí),則查找的下標(biāo)位置等于數(shù)組長度加上指定的負(fù)數(shù),若結(jié)果仍是小于0的數(shù),則檢索整個(gè)數(shù)組。

?lastIndexOf()方法

Array對(duì)象提供的lastIndexOf()方法,用于在數(shù)組中從指定下標(biāo)位置檢索到的最后一個(gè)給定值的下標(biāo)。與indexOf()檢索方式不同的是,lastIndexOf()方法默認(rèn)逆向檢索,即從數(shù)組的末尾向數(shù)組的開頭檢索。

??注意

lastIndexOf()方法的第2個(gè)參數(shù)用于指定查找的下標(biāo),且由于其采用逆向的方式檢索:

當(dāng)其值大于或等于數(shù)組長度時(shí),則整個(gè)數(shù)組都會(huì)被查找。

當(dāng)其值為負(fù)數(shù)時(shí),則索引位置等于數(shù)組長度加上給定的負(fù)數(shù),若其值仍為負(fù)數(shù),則直接返回-1。

??數(shù)組轉(zhuǎn)字符串

開發(fā)中若需要將數(shù)組轉(zhuǎn)換為字符串時(shí),則可以利用JavaScript提供的方法實(shí)現(xiàn)。

??join()和toString()方法的相同點(diǎn):

  • 可將多維數(shù)組轉(zhuǎn)為字符串,默認(rèn)情況下使用逗號(hào)連接。
  • 當(dāng)數(shù)組元素為undefined、null或空數(shù)組時(shí),對(duì)應(yīng)的元素會(huì)被轉(zhuǎn)換為空字符串

??join()和toString()方法的不同點(diǎn):

  • join()方法可以指定連接數(shù)組元素的符號(hào)。

??其他方法

除了前面講解的幾種常用方法外,JavaScript還提供了很多其他常用的數(shù)組方法。例如,合并數(shù)組、數(shù)組淺拷貝、顛倒數(shù)組元素的順序等。

??注意

  • slice()和concat()方法在執(zhí)行后返回一個(gè)新的數(shù)組,不會(huì)對(duì)原數(shù)組產(chǎn)生影響,剩余的方法在執(zhí)行后皆會(huì)原數(shù)組產(chǎn)生影響。
  • splice()方法的第1個(gè)參數(shù)的值等于或大于數(shù)組長度時(shí),從數(shù)組末尾開始操作;當(dāng)該值為負(fù)數(shù)時(shí),則下標(biāo)位置等于數(shù)組長度加上指定的負(fù)數(shù),若其值仍為負(fù)數(shù),則從數(shù)組的開頭開始操作。

總結(jié)

到此這篇關(guān)于JavaScript常見數(shù)組方法之如何轉(zhuǎn)置矩陣的文章就介紹到這了,更多相關(guān)JavaScript數(shù)組轉(zhuǎn)置矩陣內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論