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
你的目的是根據(jù)不同的輸入修改數(shù)組的內(nèi)容,所以直接更新到數(shù)組中以達到目的:
因為js的傳參都只是值傳遞,所以你只是傳個值進去自然不可能修改到外層的數(shù)組。
這是因為函數(shù)參數(shù)傳遞時只是將值復制一份傳入,在函數(shù)中修改以后只會在函數(shù)里起作用,函數(shù)結束后值并不會返回,需要return回來才行。另外你的switch是對整個數(shù)組進行case,而不是對某一個元素。
方法有很多,最簡單的在函數(shù)最后return str,然后用arr[0] = modi(arr[0])的方式調用。