forEach在项目中的使用

简介: forEach在项目中的使用

forEach 会改变原始数组  被forEach循环的数组不能够为空


forEach会改变原始数组     value是内容   index是索引   array是你写的数组。

 

foeEach内部是异步的哈

           

功能描述: eachArr给数组的每一项 添加一个新的key值

 

为什么在项目中会使用foeach.因为forEach会改变原始数组。

我们在一些时候,就需要去使用原始数组。

 

比如:后端在给我们的每一项中只有3个字段。我们需要再添加一个字段去控制其他的。此时

我们就可以去使用foreach。


 eachArr: [
      { name: "lj", age: 20 },
     { name: "lh", age: 23 },
     { name: "yj", age: 21 },
 ]
   giveEach() {
            if (this.eachArr) {
                this.eachArr.forEach((v, i, arr) => {
                    //添加一个新的key
                    this.eachArr[i]['url'] = "http";
                })
                console.log('123', this.eachArr)
            }
        },

1425695-20200414225542250-1487334982.png

不要在forEach中去执行异步任务


function delay(item){
    return new  Promise((resolve)=>{
        setTimeout(()=>{
            resolve(item)
        },2000)
    })
}


我们本来希望的是:


每个2s后,依次打印出1,2,3,4 然后最打印出【打印完毕】


但是实际却是:


先打印出==》打印完毕==》1,2,3,4一起被打印出来==》并没有每隔2s


怎么解决了,使用for of就ok了


function fn(arr){
    arr.forEach(async element => {
        console.log( await delay(element) );
    });
    console.log('打印完毕' )
}
fn([1,2,3,4])
function delay(item){
    return new  Promise((resolve)=>{
        setTimeout(()=>{
            resolve(item)
        },2000)
    })
}
async function fn(arr){
    for (const iterator of arr) {
        console.log( await delay(iterator) );
    }
    console.log('打印完毕' )
}


forEach 中不支持 break 和 continue


null,undefined使用foeEach会报错,[]空数组不会.{注意}



相关文章
|
2月前
|
数据处理 索引
forEach 方法有哪些替代方法?
总之,虽然`forEach`方法是一种常用的数组遍历方法,但在不同的情况下,有多种替代方法可以提供更具针对性和高效的解决方案。通过合理选择和运用这些方法,我们可以更好地处理数组数据,提高代码的质量和效率。
71 5
|
4月前
|
索引
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
|
3月前
for in ,for of和forEach的区别
for in ,for of和forEach的区别
68 5
|
3月前
|
算法
|
5月前
|
JavaScript 前端开发 索引
JS中常用的数组迭代方法(filter,forEach,map,every,some,find,findIndex)
这段代码和说明介绍了JavaScript中数组的一些常用方法。函数接收三个参数:`item`(数组项的值)、`index`(项的位置,可选)和`array`(数组本身,可选)。示例展示了如何使用`filter()`过滤非空项、`forEach()`遍历数组、`map()`处理并返回新数组、`every()`检查所有元素是否满足条件、`some()`检查是否存在满足条件的元素、`find()`获取首个符合条件的元素值以及`findIndex()`获取其索引位置。这些方法都不会修改原数组。
JS中常用的数组迭代方法(filter,forEach,map,every,some,find,findIndex)
|
5月前
|
索引
foreach,for in和for of的区别
foreach,for in和for of的区别
68 1
|
8月前
|
索引
for和foreach谁更快,为什么
for和foreach谁更快,为什么
321 0
|
存储 JavaScript 前端开发
js中的遍历方法比较:map、for...in、for...of、reduce和forEach的特点与适用场景
js中的遍历方法比较:map、for...in、for...of、reduce和forEach的特点与适用场景
211 0
|
8月前
|
存储 索引
for 和 foreach 谁更快
for 和 foreach 谁更快
125 1
|
8月前
|
JavaScript 前端开发
foreach、for in和for of的区别?
foreach、for in和for of的区别?
61 0