欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 前端for循环遍历——foreach、map使用

前端for循环遍历——foreach、map使用

2025/6/28 14:51:19 来源:https://blog.csdn.net/qq_55097440/article/details/144956199  浏览:    关键词:前端for循环遍历——foreach、map使用

title: 前端不同类型的for循环遍历——foreach、map
date: 2025-01-04 11:02:17
tags: javascript

前端不同类型的for循环遍历

场景:很多时候后端发来的数据是不能够完全契合前端的需求的,比如你要一个数据对象中的值,但是这个值却作为了key出现;比如你要通过一个数组中的对象的某个属性来确定到底取哪个对象。

一、for与foreach

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// 计算for循环遍历所需要的相关的时间的长短let arrs = [...Array(99999999).keys()]let total = 0let time = 0let starTime = Date.now()for (let index = 0; index < arrs.length; index++) {total++}let endTime = Date.now();time = endTime-starTime;console.log("for循环遍历共计消耗时间:"+ time+"ms");total = 0starTime = Date.now()arrs.forEach(element => {total++});endTime = Date.now();time = endTime-starTime;console.log("foreach循环遍历共计消耗时间:"+ time+"ms");</script>
</body>
</html>

发现两种遍历的效率还是差距挺大的,具体如下测试结果。

注意:

.forEach()方法是不支持break这种结束方法,但是他支持return进行结束

.forEach()方法不支持异步等待,他会直接跳过当中的异步同步化(async、await)请求操作。

二、map

1.基础遍历

使用.map方法可以帮助遍历数组,同时可以得到数组的元素、下标、还有当前数组本身

let arr = [1,2,3,4,5,6];
arr.map((item,index,arr)=>{console.log(item,index,arr);
})

2.简单生成新数组

return是每次返回一个子元素(假如只有一行简单的代码,也可以去掉return),就不用复杂push操作。

 let arr = [1,2,3,4,5,6];//item表示当前的元素,index表示下标,arr当前数组的的相关数据let  newArr = arr.map(item=>{return item*2})//2,4,6,8,10,12console.log(newArr);

3.清洗对象数组数据

操作数组对象中的相关数据,可用于清洗数据

let arr = [{name:"张三",age:18},{name:"李四",age:22},{name:"王五",age:23},]
let newArr = arr.map(item=>{return item.name})//可以仅遍历出了自己想要的属性的数组console.log(newArr); // ['张三', '李四', '王五']

4.在数组对象中追加属性、更改属性值

…三个点属于es6新特性,就是用来展开对象中的所有属性的简写,我们是可以复写相关的属性的,不影响使用。

 let arr = [{name:"张三",age:18},{name:"李四",age:22},{name:"王五",age:23},]let newArr = arr.map(item=>{return {...item,//es6新语法添加所有属性age:`${item.age}`,//更改值class:1 //添加新属性方法}})console.log(newArr);

简写方法 ,不写return的时候的加上一个小括号来包裹相关的属性。

 let newArr = arr.map(item=>({...item,age:`${item.age}`,class:1}))

相关的结果如下所示

5.进行属性名称的解构替换

假如说我们要将name这个属性名称改成uname,可以使用map进行相关的解构替换。这样直接使用一个{属性},可以直接使用,不用再使用item进行相关的调用。

let arr = [{name:"张三",age:18},{name:"李四",age:22},{name:"王五",age:23},]
let newArr = arr.map(({name,age})=>{return{ uname:name,ages:age}})
console.log(newArr);

6.异步请求,同时展示优化

很多时候起哦们去要请求后端接口拿到数据,但是请求接口是异步请求,但是又有相关的需求要同时展示,这个时候就可以利用map添加参数进行异步请求同步化,再使用promise.all一次处理相关的所有数据。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词