新建一个switch函数,将数组某个元素带入,返回的依然是原来的数,为什么?? 财富值56

2016-10-16 11:32发布

arr=[1,2,3];     function modi(str){         switch(str){     case 1:          str = "a";          break;     case 2:          str = "b";          break;     case 3:          str = "c";          break;         }     }       modi(arr[0]);      modi(arr[1]);      modi(arr[2]);      console.log(arr);//返回 1,2,3                  要怎样才能返回 a,b,c
4条回答

你的目的是根据不同的输入修改数组的内容,所以直接更新到数组中以达到目的:

方法有很多,最简单的在函数最后return str,然后用arr[0] = modi(arr[0])的方式调用。

这是因为函数参数传递时只是将值复制一份传入,在函数中修改以后只会在函数里起作用,函数结束后值并不会返回,需要return回来才行。另外你的switch是对整个数组进行case,而不是对某一个元素。

因为js的传参都只是值传递,所以你只是传个值进去自然不可能修改到外层的数组。

一周热门 更多>