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)
            }
        },

forEach没有返回值

let arr=[
    {name:'张三',age:13},
    {name:'张三',age:13},
    {name:'张三',age:13}
]

let newRrr=arr.forEach((item,index,arr)=>{
    console.log( "每一项",item)
    console.log( "索引",index)
    console.log( "被循环的数组",arr)
    return index
})
//因为forEach是没有返回值的,所以该值是 undefined
console.log("newRrr",newRrr );

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

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


我们本来希望的是:
每个2s后,依次打印出1,2,3,4 然后最打印出【打印完毕】
但是实际却是:
先打印出==》打印完毕==》1,2,3,4一起被打印出来==》并没有每隔2s

怎么解决了,使用for of就ok了
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会报错,[]空数组不会.

posted @   南风晚来晚相识  阅读(263)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示