我最近学习了数组的很多属性,然后就遇到了map和forEach这两个属性,现在捋一捋这两个属性的用法和区别
当用来遍历原数组时,这两个属性用法一模一样,但是遍历的数组元素不包括空元素
运算结果
5和7之间的空元素,打印a时并没有没打印出来,但是打的下标还是留了这个位置跳过去了,后面打印的数组也包含这个空元素
不同处:map有一个返回值,foreach则没有返回值,当函数的执行部分{ }什么都不写时,这个返回值是一个和原数组等长度的,全部由undefined组成的元素的新数组,而forEach仅仅是一个undefined
并且map的{ }里加其return 字符时,会返回与元素组等长度的由字符元素组成的数组,而forEach还是返回一个undefined
当return 后面返回的数组参数a时,就可以得到原来数组元素一模一样的一个新数组,forEach则不能
这样的话我们就可以对a操作,比如+10,那这样我们就得到比原数组每一个元素都大10的新数组;我们还可以*10,就得到元素大10倍的新数组等等
我们还可以返回b,也就是下标
得到的就是由元素组下标的10倍当作元素组成的新数组,这个新数组还是和原来数组一样长度
总结:map,forEach这两个用来遍历原来的数组时,用法结果一样,
但是map有一个返回值,这个返回值是一个和原数组长度相等的新数组;{ }里什么也不写的话,所有元素就都是undefined;{ }写了return,并且return后面的值就是新数组的元素,直接更改这个return后面的值,就可以得到我们需要的新数组