javaScript中Array.map()的用法

前言

作为一个刚刚踏入前端世界的小白,工作中看到身边同事大佬写的代码就像古诗一样简介整齐,而我的代码如同一堆散沙,看上去毫无段落感,而且简单的功能需要一大堆代码才能实现,不仅加大了自己的工作量,同时也给调试和维护增加了很大难度。这里拿我的代码和大佬的做一下对比

先上我的代码

CategoriesApi().then((res) => {
for (let i = 0; i < res.list.length; i++) {
let item={}
item.name=res.list[i].name
item.price=res.list[i].price
.........
this.DataList.push(item)
}
}
})

大佬们的代码

async getCategories(params) {
const { list = [] } = await Categories(params)
this.DataList = [
list.map((node) => {
return {
...node
}
})
]
}

所以这里需要说到今天的主角,数组的map用法,

语法及定义

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

   map() 方法按照原始数组元素顺序依次处理元素

   我的理解就是map首先会创建一个新的数组,其中新数组的每一个元素就是原数组中每一个元素经过咱们设置的给定函数变化后的结果。也就是说对原始数组中的每一项运行给定的函数,然后按原数组的顺序组装成新的数组,该方法也不会改变原始的数组,还产生一个新数组。

      map()接收两个参数:

     第一个参数必填,为一个函数,就是上面所说的给定的函数(每一项执行的函数,必写),这个给定的函数又有三个参数,第一个为当前元素的值(必写),第二个参数是当前值的下标索引,第三个为当前元素属于的数组对象(目前觉得没啥用)。

       第二个参数非必填,thisValue,对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。(目前还不会用)

简单的实例

//定义一个函数,使得传入的每一个值都加上2
function add2(x,y,z){
console.log(x+"=="+y+'=='+z);
return x + 2
}
//定义一个数组
var arr = [1,2,3,4,5,6]
var newArr = arr.map(add2)
console.log(newArr);

打印结果

1==0==1,2,3,4,5,6
2==1==1,2,3,4,5,6
3==2==1,2,3,4,5,6
4==3==1,2,3,4,5,6
5==4==1,2,3,4,5,6
6==5==1,2,3,4,5,6
(6) [3, 4, 5, 6, 7, 8]

进阶实例

let  dataList = res.list.map(item => {
return {
name: item.name,
sex: item.sex ==1? '男':'女',
age: item.age
}
})

或者也可以把return省去

const dateList=res.list.map(item => ({
name:item.name,
age:item.age
})
);

别的高级的场景用法暂时还没有碰到,我会继续学习,逐步提高自己的代码质量,不再仅仅是用到for循环这么low的写法,还有forEach,for..in ,for...of,,,set,filter,every,find等等好多看起来高大上的方法,不光要学会,更重要是在代码中运用到,继续加油!明天又是充满希望的一天!!!!

js--数组的map()方法的使用的更多相关文章

  1. jQuery与JS中的map()方法使用

    1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...

  2. js实现的map方法

    /** * * 描述:js实现的map方法 * @returns {Map} */ function Map(){ var struct = function(key, value) { this.k ...

  3. 【前端_js】javascript中数组的map()方法

    数组的map()方法用于遍历数组,每遍历一个元素就调用回调方法一次,并将回调函数的返回结果作为新数组的元素,被遍历的数组不会被改变. 语法:let newAarray = arr.map(functi ...

  4. js中数组的map()方法

    map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值 map()方法按照原是数组顺序以此处理元素 注意:map()不会对空数组进行检测 :不会改变原始的数组 实例: var nu ...

  5. JS模拟实现数组的map方法

    昨天使用map方法的时候,突然感觉一直在直接用,也没有试试是怎么实现的,本来想直接搜一篇文章盘一下子,结果没搜到合适的,好吧,那就自己来写一下子吧 今天就来实现一个简单的map方法 首先我们来看一下m ...

  6. 兼容低版本JS的Array.map方法

    前几天去别的公司面试遇到个这样的问题,兼容IE7下的Array.map方法,一脸蒙蔽.后面回来查了下资料发现.Array.map方法是ECMA-262 标准中新添加的方法,在低版本的JS中是木有的. ...

  7. js数组高阶方法reduce经典用法代码分享

    以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...

  8. javascript中数组的map方法

    map方法原型:array1.map(callbackfn[, thisArg]) 参数: array1,必选. 一个数组对象.该函数一般用于数组对象 callbackfn,必选. 最多可以接受三个参 ...

  9. 数组的map方法

    map方法 不支持IE6.7 .8 array1.map(fn) array1.map(fn[,thisArg]) 注意: fn 必须是函数,如果不是函数则会报错  TypeError: undefi ...

  10. js数组去重的方法(转)

    JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...

随机推荐

  1. mysql 创建数据库知识总结

    表设计 库名.表名.字段名必须使用小写字母,"_"分割,且名称长度不超过12个字符并且要做到见名知意. 建议使用InnoDB存储引擎. 存储精确浮点数必须使用DECIMAL替代FL ...

  2. 使用ViewPager实现卡片叠加效果

    使用ViewPager实现卡片叠加效果 背景 在开发项目时,需要对 App的某个资源模块进行界面重构,其中在资源展示部分中新的交互以卡片叠加的效果替代了原来的资源组织树门禁展示方式.在新的资源展示方式 ...

  3. Linux权限位(含特殊权限位s s t) 及chown\chmod命令使用

    1.普通权限位 ls –l查看文件的属性 [root@oldboy ~]# ls -l -rw-------. 1 root root 1073 Mar 4 22:08 anaconda-ks.cfg ...

  4. Android呼吸灯添加

    平台:mtk 一.hal层入口    Lights.c (vendor\mediatek\proprietary\hardware\liblights)     char const*const RE ...

  5. 使用Camtasia制作魔性抖肩舞视频

    最近一首风魔各大视频网站的魔性舞蹈又来袭了!这首充满魔性节奏的舞蹈就是抖肩舞了,为了将我热爱的抖肩舞视频分享给大家,我必须使用Camtasia教程录制(Windows系统)软件来制作一个魔性抖肩舞视频 ...

  6. web自动化测试--iframe切换

    什么是iframe切换,我们在测试web网页过程中,可能会遇到一个网页中嵌套另一个网页的情况,如下图,就是一个ifame嵌套的例子 我们如何切换呢,别急,webdriver里有方法,可以切换到ifra ...

  7. zabbix 监控ssh 登入与报警!!!!

    配置自定义键值 vim /etc/zabbix/zabbix_agentd.d/sanguo_check_ssh.conf 添加自定义键值 UserParameter=sanguo.check.ssh ...

  8. Python中的静态属性、实例属性、静态方法、实例方法之间的区别

  9. LaTeX中的数学公式的初步使用

    数学公式初步使用代码及注释: 显示效果:

  10. 【Linux】Linux 资料大全(100% 纯干货)

    作者:李春港 出处:https://www.cnblogs.com/lcgbk/p/14071875.html 本文章给大家分享一些 Linux 学习资料,包含:社区网站.在线教程.命令大全.在线模拟 ...