亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javaScript數組遍歷和對稀疏數組處理方法有哪些

發布時間:2022-03-11 17:31:02 來源:億速云 閱讀:180 作者:iii 欄目:web開發

本篇內容介紹了“javaScript數組遍歷和對稀疏數組處理方法有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1.forEach()方法

  forEach(參數1,參數2)方法本身可以接收兩個參數,第一個參數是一個函數,并且數組中的每一個元素均會調用一遍這個函數(稀疏數組除外)。一般來說,我們只會傳入第一個參數(且為必傳項),此處也不對其他參數多做介紹。下述其他方法的傳參情況與forEach()相同。

  且下述方法中,作為參數傳入的函數其本身也有參數值,分別為:數組元素的值,數組元素的索引和數組本身。即:

myArray.forEach(

    function (數組元素的值,數組元素的索引,數組本身) {

    }

)

補充:function(a) { return a+3} 為沒有函數名稱的匿名函數, 其可寫成箭頭函數的形式

a => a+3

示例:

let myArray = [1,2,3];

// num=>{} 箭頭函數,相當于一個匿名函數

// function(num) { num = num * 3 }

myArray.forEach(num => {

    num = num * 3;

});

console.log(myArray) //打印結果為[ 1, 2, 3 ]

  forEach()方法沒有返回值,且沒有像普通for循環一樣可以終止迭代的break語句,并且正如上文所說,我們在此處對num進行的改變不會更改到myArray數組中。

2.map()方法

  map()與forEach()方法不同的點在于,map()方法的第一個參數函數會接收我們每個數組的元素,并可以返回一個值。而整個map()方法的返回值就是這個函數的返回值所構成的數組。

  例:

let myArray = [1,2,3]

let result = myArray.map(num => {

    num *= 3

    return num

});

console.log(result,"\n原數組",myArray)

// 打印結果為

// [ 3, 6, 9 ] 

// 原數組 [ 1, 2, 3 ]

3.filter()

  filter()方法也有返回值,但他期望參數函數的返回值是一個boolean類型,也就是說它期望參數函數為斷言函數。它的返回值是一個滿足條件的myArray中的元素組成的數組。

示例:

let myArray = [1,2,3]

let result = myArray.filter(num => {

    num *= 3

    return num > 5

});

console.log(result)

//[ 2, 3 ]

  我們可以看到num值經過運算后為3、6、9,其中6和9滿足大于5的條件。其返回值是數組中的2、3這兩個元素,而不是運算后的結果。

4.一些非常用方法

find()和 findIndex()

  這兩個方法與filter()相似,但他們會在找到第一個滿足條件的值時停止迭代,find()方法會返回該元素的值,而findIndex()方法會返回這個元素在數組中的索引。例:

let myArray = [1,2,3]

let result = myArray.find(num => {

    num *= 3

    return num > 5

});

console.log(result) // 打印值為: 2

let myArray = [1,2,3]

let result = myArray.findIndex(num => {

    num *= 3

    return num > 5

});

console.log(result) // 打印值為: 1

every() 和 some()

  every()和some()函數返回值為boolean類型,亦會使用一個斷言函數作為第一個入參,但只有數組中所有元素都滿足斷言函數的條件時,every()才會返回true,當有一個元素不滿足條件時,every()會停止遍歷并返回false。

let myArray = [4,1,2,3];

let count = 0; // 用于記錄遍歷的次數

let result = myArray.every(num => {

    count++;

    num *= 3;

    return num > 5;

});

console.log(result,"遍歷的次數為",count) 

// 打印值為: false 遍歷的次數為 2

  而some()函數只要有一個滿足條件便會停止遍歷,返回true值。

let myArray = [4,1,2,3];

let count = 0; // 用于記錄遍歷的次數

let result = myArray.some(num => {

    count++;

    num *= 3;

    return num > 5;

});

console.log(result,"遍歷的次數為",count) 

// 打印值為: true 遍歷的次數為 1

  此處需要注意的是 myArray數組的元素經過乘3運算后的結果為1、6、9,其中6和9滿足大于5的條件,但其返回的是myArray中的元素,也就是沒有經過運算的2和3。(不滿足條件的元素不會被返回,此處與map()不同,map() 返回的數組長度與原數組一樣。)

對于稀疏數組的處理

  稀疏數組定義:

稀疏數組就是其元素沒有從0開始的索引的數組。正常情況下,數組的length屬性表明數組中元素的個數。如果數組是稀疏的,則length屬性的值會大于元素個數。

  正常的數組如 let myArray = [0,1,2],這個數組的長度為3,元素個數為3,與數組長度相同,索引依次為0、1、2。

  稀疏數組簡單實踐:

let testArray = new Array(10);  //數組長度為10

testArray[20] = 1 //數組長度為21

console.log(testArray) // 打印結果為 [ <20 empty items>, 1 ]

&emsp;&emsp;此時數組長度為21,而元素只有一個,這就變成了一個稀疏數組。而造就稀疏數組的實際應用場景可能在運用delete刪除數組元素時發生,如:

let myArray = [1,2,3]

delete  myArray[1]

console.log(myArray,"數組的長度為",myArray.length)

console.log(1 in myArray)

// 打印結果為

// [ 1, <1 empty item>, 3 ] 數組的長度為 3

// 索引為1的元素是否存在 false

&emsp;&emsp;delete并不會修改數組的長度,也不會改變其他元素的索引值,所以會形成一個稀疏數組。如果想要元素索引值隨著數組元素的刪減而變化,可以使用splice()方法。

forEach()方法不會遍歷稀疏數組中缺失元素

let myArray = [4,,2,3];

console.log("myArray",myArray)  

// 打印值為:myArray [ 4, <1 empty item>, 2, 3 ]

let count = 0; // 用于記錄遍歷的次數

myArray.forEach(num => {

    count++;

});

console.log("數組的長度為",myArray.length,"遍歷的次數為",count) 

// 數組的長度為 4 遍歷的次數為 3

map()也不會遍歷稀疏數組中缺失元素,但其返回值數組與原數組長度相同,且缺失的元素位置也相同

let myArray = [4,,2,3];

console.log("myArray",myArray)

// 打印值為:myArray [ 4, <1 empty item>, 2, 3 ]

let count = 0; // 用于記錄遍歷的次數

let result = myArray.map(num => {

    count++;

    return num*3

});

console.log("數組的長度為",myArray.length,"遍歷的次數為",count,"返回的數組為",result)

// 打印值為: 數組的長度為 4 

// 遍歷的次數為 3 

// 返回的數組為 [ 12, <1 empty item>, 6, 9 ]

filter()的返回值不會包含稀疏數組中缺失的元素

let myArray = [4,,2,3];

console.log("myArray",myArray)

// 打印值為:myArray [ 4, <1 empty item>, 2, 3 ]

let count = 0; // 用于記錄遍歷的次數

let result = myArray.filter(num => {

    count++;

    return num>1

});

console.log("數組的長度為",myArray.length,"遍歷的次數為",count,"返回的數組為",result)

// 打印值為: 數組的長度為 4

// 遍歷的次數為 3

// 返回的數組為 [ 4, 2, 3 ]

“javaScript數組遍歷和對稀疏數組處理方法有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿克苏市| 阜新市| 广宗县| 乌苏市| 灵武市| 格尔木市| 洪雅县| 阳朔县| 闻喜县| 达日县| 平顶山市| 汪清县| 临邑县| 新竹县| 屏南县| 安岳县| 桦甸市| 五指山市| 泰来县| 沂源县| 确山县| 那坡县| 蓝田县| 巴中市| 永福县| 遂平县| 南通市| 资讯| 仪陇县| 胶南市| 根河市| 阿拉善盟| 子长县| 万州区| 古田县| 崇文区| 自治县| 宿州市| 乌鲁木齐县| 吴桥县| 上蔡县|