js forEach for区别

1、循环中断差别

具体见示例代码:

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>js for forEach区别 </title>
    </head>

    <body>
        <script src="https://cdn.bootcss.com/lodash.js/4.17.10/lodash.min.js"></script>
        <script type="text/javascript">
            let arr = [1, 2, 3, 4]
            for(let i = 0; i < arr.length; i++) {
                if(arr[i] == 2) {
                    continue;
                    //break;
                }
                console.log(arr[i], ‘  for‘)
            }
            for(let i in arr) {
                if(i == 2) {
                    break;
                }
                console.log(arr[i], ‘   for in‘)
            }
            for(let i of arr) {
                if(i == 2) {
                    break;
                }
                console.log(i, ‘   for of‘)
            }
            arr.forEach(val => {
                if(val == 2) {
                    //此处的return false 仅仅相当于continue
                    return false;
                    //break或者continue均不能使用 会报错,对于map filter方法一样会报错
                    //break;
                    //continue
                }
                console.log(val, ‘   forEach‘)
            })
        </script>
    </body>

</html>

数组的迭代方法:every、filter、forEach、map、some均不能使用break或者continue进行中断循环。

2、数组变化时差别

(1)数组添加操作

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>js for forEach区别 </title>
    </head>

    <body>
        <script src="https://cdn.bootcss.com/lodash.js/4.17.10/lodash.min.js"></script>
        <script type="text/javascript">
            let arr = [1, 2, 3, 4]
            for(let i = 0; i < arr.length; i++) {
                if(arr[i] == 2) {
                    //对于添加时,for可以遍历新数组
                    arr.push(5)
                }
                // 输出1 2 3 4 5
                console.log(arr[i], ‘  for‘)
            }

            arr.forEach(val => {
                if(val == 2) {
                    //对于添加时,forEach
                    arr.push(5)
                }
                // 输出1 2 3 4 5
                console.log(val, ‘   forEach‘)
            })
        </script>
    </body>

</html>

(2)数组更新、删除操作

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>js for forEach区别 </title>
    </head>

    <body>
        <script src="https://cdn.bootcss.com/lodash.js/4.17.10/lodash.min.js"></script>
        <script type="text/javascript">
            let arr = [1, 2, 3, 4]
            for(let i = 0; i < arr.length; i++) {
                if(arr[i] == 2) {
                    //对于更新、删除时,for可以遍历新数组
                    arr[1] = 100
                    //arr.splice(i,1)
                }
                // 输出1 100 3 4
                console.log(arr[i], ‘  for‘)
            }

            arr.forEach((val, i) => {
                if(val == 2) {
                    //对于更新、删除时,forEach可以遍历新数组
                    val = 100
                    //arr.splice(i,1)
                }
                // 输出1 100 3 4
                console.log(val, ‘   forEach‘)
            })
        </script>
    </body>

</html>

原文地址:https://www.cnblogs.com/mengfangui/p/9577433.html

时间: 2025-01-13 04:55:55

js forEach for区别的相关文章

js forEach参数详解,forEach与for循环区别,forEach中如何删除数组元素

 壹 ? 引 在JS开发工作中,遍历数组的操作可谓十分常见了,那么像for循环,forEach此类方法自然也不会陌生,我个人也觉得forEach不值得写一篇博客记录,直到我遇到了一个有趣的问题,我们来看一段代码: let arr = [1, 2]; arr.forEach((item, index) => { arr.splice(index, 1); console.log(1); //输出几次? }); console.log(arr) //? 请问,这段代码执行完毕后arr输出为多少?循环

原生JS forEach()和map()遍历的区别以及兼容写法

一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input. 3.匿名函数中的this都是指Window. 4.只能遍历数组. 1.forEach() 没有返回值. arr[].forEach(function(value,index,array){ //do something }) 参数:value数组中的当前项,

js获取html元素? js里&quot;==&quot;和&quot;===&quot;区别?

现在的我的cpu又添加一项进程,那就是javaScript. 一.js获取html元素常用的方法: js获取html元素常用的方法有: 1)var obj = document.getElementById("#id");非常常用是通过Id来获取页面元素的. 2) var obj = document.getElementsByTagName("element");这个是通过html页面标签来获取元素的.在一个页面中相同的标签会出现很多次,如何能定位到自己想要的呢?

Json对象、 Json纯文本 和js对象的区别:

Json纯文本 和js对象的区别: Json对象:var JSONObject= { "name":"John Johnson", "street":"Oslo West 555", "age":33, "phone":"555 1234567"}; typeof(JSONObject)结果是:"object" Json纯文本: 是具有JSON数据

原生JS forEach()和map()遍历,jQuery$.each()和$.map()遍历

一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input. 3.匿名函数中的this都是指Window. 4.只能遍历数组. 1.forEach() 没有返回值,修改的是原数组. var ary = [12,23,24,42,1]; var res = ary.forEach(function (item,index

js foreach函数 注意事项(break、continue)

foreach API说明: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach 说明: forEach 遍历的范围在第一次调用 callback 前就会确定.调用forEach 后添加到数组中的项不会被 callback 访问到.如果已经存在的值被改变,则传递给 callback 的值是 forEach 遍历到他们那一刻的值.已删除的项不会被遍历到.如果已访

JS中map()与forEach()的区别和用法

相同点: 1.都是循环遍历数组中的每一项 2.每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组) 3.匿名函数中的this都是指向window 4.只能遍历数组 不同点: map() map方法返回一个新的数组,数组中的元素为原始数组调用函数处理后的值 也就是map()进行处理之后返回一个新的数组 ??注意:map()方法不会对空数组进行检测 map方法不会改变原始数组 var arr = [0,2,4,6,8];var str = arr.

.NET for 和 foreach的区别

我们知道If,Else,For,While,Switch,变量等等都是面向过程中的基础知识,本篇文章主要就讲讲.NET 中For和Foreach之间的区别: -- For循环主要是有条件地进行遍历数据并筛选符合条件的数据. -- Foreach循环主要是一次性地遍历数据. 注:两种循环方式有好有坏,在不同的场景采用不同的循环方式,因人而异. 以下就简单列举个例子解析两种循环的差异: //主要的运行环境是VS2010,以控制台为例. //For循环的例子 //定义字符串数组 string[] st

Javascript/Jquery 中each() 和forEach()的区别

从名字看上去这两个方法好像有点关系,但在javascript中它们区别还是挺大的. forEach() 用于数组的操作,对数组中的每个元素执行制定的函数(不是数组不能使用forEach()方法). 而$.each() 是JQuery中的方法,用于对集合中的每个匹配元素执行制定的函数.此外,它们所对应的回调函数中的参数也不一样:Array.forEach(item,index,array1);$(selector).each(function(index,element)). 下面是$.each(