私はこのコードを持っている:1つのアレイが別のアレイに加えた変更の影響を受けるのはなぜですか?
function titleCase(str) {
str=str.toLowerCase();
str=str.split("");
var evilstr=str;
var counter = [];
for (i=0;i<150;i++) {
counter.push(evilstr.findIndex(function(character){
return character===" ";
}));
evilstr[i]="x";
}
return str;
}
titleCase("I'm a little tea pot");
をし、それがこの結果を生成します。
'['x','x','x','x','x','x','x','x','x','x','x','x','x','x','x','x','x',...'
なぜstr
は、forループによって全く影響を受けていますか?私は別の文字に分割した後、私はそれをまったく変更しないのですか?
'evilstr = str'は' str'の新しいコピーを作成しません。 –
はい、そうです。プリミティブは常にコピーとして保存されます。 – shadymoses
しかし、str = str.split .... –