Javascript map over for loop在安全方面的优势

Javascript map over for loop在安全方面的优势,javascript,Javascript,在谈到使用mapoverfor循环时,我对“提供不变性”的含义有一个模糊的理解。因为对数组调用Array.prototype.map,并不能阻止您更改原始数组。假设我们有单线程异步程序。在这些情况下,map是否比for循环提供了“不可变”的好处 我可以想象以下代码: 函数A(){ 常数arr=[1,2,3,4,5] const anotherArr=arr.map((e,i)=>{ arr[i]=“已更改” //下面是一些异步代码 返回e*2 }) //现在arr是['changed','ch

在谈到使用
map
over
for
循环时,我对“提供不变性”的含义有一个模糊的理解。因为对数组调用
Array.prototype.map
,并不能阻止您更改原始数组。假设我们有单线程异步程序。在这些情况下,
map
是否比
for
循环提供了“不可变”的好处

我可以想象以下代码:

函数A(){
常数arr=[1,2,3,4,5]
const anotherArr=arr.map((e,i)=>{
arr[i]=“已更改”
//下面是一些异步代码
返回e*2
})
//现在arr是['changed','changed','changed','changed','changed']
//另一个数组是[2,3,6,8,10]
}
函数B(){
常数arr=[1,2,3,4,5]
const anotherArr=[]
for(设i=0,len=arr.length;i}
映射、减少、过滤、forEach等

在我看来,上面的方法对于FP(函数式编程)很好

当然,你可以用它们代替普通的for循环, 但是普通for循环比它们快()


因此,在我看来,如果你不关心性能,那么使用map、reduce等是优雅的,并且会得到更少、更可读的代码。

当你执行
arr[i]=“changed”
时,在这两种情况下你都在变异原始代码。不,map和带有
push
的for循环之间的区别是不安全的。主要是可读性。