<script language=javascript>
var aryA=new Array(3,4,7,9,2);
var aryB=aryA;
aryB.splice(3,1);
document.write(aryA);
</script>
为什么原来的数组aryA也改变了呢?我期望的是aryA不变,但得到一个改变了的aryB
var aryA=new Array(3,4,7,9,2);
var aryB=aryA;
aryB.splice(3,1);
document.write(aryA);
</script>
为什么原来的数组aryA也改变了呢?我期望的是aryA不变,但得到一个改变了的aryB
解决方案 »
- 去哪儿网的一道面试题
- 在js里边想把一个alter弹出框改为弹出一个表格样式的网页或对话框,请前辈指点!小弟先感谢了!
- 页面无刷新 获取当前时间
- 求一款能在火狐、谷歌浏览器上播放mp3的播放器
- 弱问..........导入到Excel的问题.
- 各位大哥,如何在javascript里读写,新建一个txt文件?
- (高分)一个报表,显示多条查询结果,能否做到点击某一报表列名区域就可以控制重新排序,如同outlook的收件箱效果,点击发件人,时间等列可
- 这个页面相信大家很有参考价值,并请高手看看这个页面,有没有好的方法解决以下两个问题:1.............2..........
- 关于导航条的一个问题---!高分赠送!!!
- esayui的datagrid中url请求跨域问题?
- 如何使用html5标签
- ext4 combobox请求服务数据
var aryB=aryA;相当与把aryA的一个引用也指向了aryB,A改变了会影响B的。这样直接把A赋给B,在B中改变都会影响到A的。用delete方法也是,只能通过重新创建一个Array,然后把A里面想要的值赋给创建的
var aryB=aryA.slice(0,arr.length);
aryB.splice(3,1);
document.write(aryA);这样试试
例如:
var aryA=new Array(3,4,7,9,2);
var aryB=aryA.concat(); 或者 var aryB=aryA.slice(0);
aryB.splice(3,1);
document.write(aryA);
两个引用相同,当然会受影响,赋值为一个copy就可以了。