我有这样的代码:为什么一个数组受到我对另一个数组的更改的影响?
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 .... –