温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JavaScript中forEach()怎么用

发布时间:2022-03-05 11:16:04 来源:亿速云 阅读:105 作者:小新 栏目: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