在项目中,遇到对后台返回数据的处理,就有点怵,特别是forEach,今天特地再重新梳理一遍,主要对比map和forEach来看。
相同点:
1)只能遍历数组;
2)都是循环遍历数组中的每一项;
3)每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组);
4)匿名函数中的this都是指向window
不同点:
1)map()会分配内存空间存储新数组并返回,forEach()不会返回数据;
2)forEach()允许callback更改原始数组的元素。map()返回新的数组。
简而言之,forEach是修改原数组的值,没有返回数据;map不会修改原数组的值,返回新的数组。
例子:
所以,根据适用场景选择forEach或是map。forEach适用于并不打算改变原数据的时候,比如打印或者存入数据;而map是需要修改原数据的时候。
相比较而言,forEach给后台返回的数组中追加标记字段更为方便。