中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

JavaScript中forEach()怎么用

發布時間:2022-03-05 11:16:04 來源:億速云 閱讀:115 作者:小新 欄目:web開發

這篇文章主要為大家展示了“JavaScript中forEach()怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“JavaScript中forEach()怎么用”這篇文章吧。

forEach()

foreach語句是java5的新特征之一,在遍歷數組、集合方面,foreach為開發人員提供了極大的方便。

foreach語句是for語句的特殊簡化版本,但是foreach語句并不能完全取代for語句,然而,任何的foreach語句都可以改寫為for語句版本。

foreach并不是一個關鍵字,習慣上將這種特殊的for語句格式稱之為“foreach”語句。從英文字面意思理解foreach也就是“for 每一個”的意思。

await 不能用在 forEach 中:原因:那就是 forEach 只支持同步代碼。

forEach 循環無法中途跳出,break 命令或 return 命令都不能奏效

forEach() 方法對數組的每個元素執行一次提供的函數。

var arr = ['a', 'b', 'c'];

arr.forEach(function(e) {

  console.log(e);

});

//輸出結果

a;

b;

c;

forEach方法中的function回調有三個參數:

第一個參數是遍歷的當前元素 (必需),

第二個參數是當前元素的索引值(可選),

第三個參數是當前元素所屬的數組對象(可選)

forEach(function(value,index,array){

    // something

  });

 var arr = [1, 2, 3, 4];

 arr.forEach(console.log);

//    等價于:

 var arr = [1, 2, 3, 4];

 for (var k = 0; k < arr.length; k++) {

 console.log(array[k]);

    }

var arr = [1,2,3,4];

var sum =0;

arr.forEach(function(value,index,array){

 array[index] == value; //輸出結果為 true

 sum+=value; 

 });

console.log(sum); 

//輸出結果 10

forEach 循環無法中途跳出,break 命令或 return 命令都不能奏效

1、forEach不支持break

大家都知道,在使用for循環時可以使用break跳出循環,比如我希望找到數組中符合條件的第一個元素就跳出循環,這對于優化數組遍歷是非常棒的。很遺憾,forEach并不支持break操作,使用break會導致報錯。

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

for (let i = 0; i < arr.length; i++) {

   console.log(arr[i]);

   if (arr[i] === 2) {

       break;

   };

};

//輸出結果  1,2 

arr.forEach((self, index) => {

   console.log(self);

   if (self === 2) {

       break;

   };

});

//報錯

2、forEach中使用return無效

首先需要確定的,直接再for循環中使用return會報錯(函數中使用for可以return),forEach中使用return不會報錯,但rerutn并不會生效,我們來看個例子:

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

 function find(array, num) {

     array.forEach((value, index) => {

         if (value === num) {

             return index;

         };

     });

 };

 let index = find(arr, 2);

 console.log(index);

 // 輸出結果 undefined

上述代碼想要找到數字2在數組中的索引,但return并不會起到終止代碼運行并返回值的作用。

當然如果我們真的要用return返回某個值,那就只能將return操作放在函數中,而不是forEach循環中,像這樣:

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

function find(array, num) {

    let index_;

    array.forEach((value, index) => {

        if (value === num) {

            index_ = index;

        };

    });

    return index_;

};

console.log(find(arr, 2));

//輸出結果 1

3、forEach刪除自身元素index不會被重置

還記得文章開頭的問題嗎,那段代碼其實只會執行一次,數組也不會被刪除干凈,這是因為forEach在遍歷跑完回調函數后,會隱性讓index自增,像這樣:

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

arr.forEach((value, index) => {

    arr.splice(index, 1);

    //這里隱性讓index自增加1  

    index++;

});

console.log(arr);

//輸出結果 [2,4]

4、forEach 并不改變原數組:

 let arr = [1, 2, 3, 4, 5];

 let a = arr.forEach(function(value, index, arr) {

     console.log(value)

//輸出

 })

 console.log(a) //輸出結果 undefined

 console.log(arr.toString())//輸出 1,2,3,4,5

for與forEach的區別

for循環可以使用break跳出循環,但forEach不能。

for循環可以控制循環起點(i初始化的數字決定循環的起點),forEach只能默認從索引0開始。

for循環過程中支持修改索引(修改 i),但forEach做不到(底層控制index自增,我們無法左右它)。

以上是“JavaScript中forEach()怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

台北市| 射阳县| 康乐县| 西华县| 遂溪县| 渭源县| 安陆市| 南丰县| 吉首市| 怀远县| 大冶市| 筠连县| 抚松县| 阳江市| 全州县| 八宿县| 宣武区| 民和| 繁峙县| 萍乡市| 汝州市| 巴南区| 旺苍县| 鹿邑县| 文安县| 白朗县| 九台市| 大理市| 平阳县| 宜君县| 丰城市| 南川市| 太谷县| 颍上县| 剑川县| 娱乐| 大丰市| 同心县| 汤阴县| 龙门县| 沾益县|