|
|

楼主 |
发表于 2023-8-17 18:48
|
显示全部楼层
本帖最后由 马黑黑 于 2023-8-17 18:51 编辑
map方法,不修改原数组,是在原数组的基础上加工里面数组元素的内容,然后将新的数组内容生成一个新的数组。map方法,会跳过空数组。例如:
<div id="mydiv"></div>
<script>
let arr1 = new Array(20);
let arr2 = arr1.map((item,idx) => idx);
mydiv.innerText = arr1 + '\n' + arr2;
</script>
结果是这样:
,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,
两行都是空数组,map不处理 arr1 的任何一个数组元素。这是因为,arr1 = new Array(20) 这一句,它只生成了一个有数组长度、没有数组元素内容的数组 arr1,map会跳过空数组元素即不做处理。
倘若我们给 arr1 填充数组元素,哪怕只是填充空的数组元素:
let arr1 = new Array(20).fill('');
则,经过 map 处理后,arr1 和 arr2 两个数组打印出来,是这样:
,,,,,,,,,,,,,,,,,,,
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
arr1没有变化,因为我们填充的是空值,但它的每一个数组元素都是有值的,不再是空的数组元素,而是具有空值的数组元素的数组,这样,map就会处理每一个arr1的数组元素最后赋值给 arr2(map以数组索引号填充了 arr2 的每一个数组元素)。 |
评分
-
| 参与人数 1 | 威望 +50 |
金钱 +100 |
经验 +50 |
收起
理由
|
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|