Array.prototype.remove=function(dx) {
alert(1111);
if(isNaN(dx)||dx>this.length){return false;}
for(var i=0,n=0;i<this.length;i++)
{
if(this[i]!=this[dx])
{
this[n++]=this[i]
}
}
this.length-=1
}var sort_user = ["张三","李四","王五"];
var group = [1,2,3,1];
var proj = new Array(new Array(), new Array(), new Array(), new Array());
var tmpArray = new Array();
for (var i = 0; i < 4; i++) {
alert(sort_user);
tmpArray = sort_user;
for (var j = 0; j < group[i]; j++) {
var tmp = parseInt(Math.random() * tmpArray.length);
proj[i][j] = tmpArray[tmp];
alert(tmpArray[tmp]);
tmpArray.remove(tmp);
}
}
我把变量sort_user 的值,赋值给了tmpArray。然后改变tmpArray的值,怎么sort_user的值也被改变了
解决方案 »
- jquery find在IE浏览器中无效
- 求助JS更改
- 这个菜单怎么弄?50分。谢谢
- 谁会用Mozilla中label的innerHTML啊?
- hehe,有一个问题:div1.innerHTML += "<table border=1 width=700>";
- 链接的onclick事件----代码该怎么写?
- 怎么将程序保存到客户端指写的目录,然后运行程序呢
- 一个javascript函数里套用了vbscript的语句,出现了如此错误,真着急
- 安全验证问题
- 大家来看看这个家伙
- 高手帮忙:<a href="#" onclick="act(document.topsearch.type);">搜索</a>中onclick事件没有执行??
- 两种函数定义的差别
<!--
var sort_user = ["张三","李四","王五"];
var tmpArray = new Array();
alert("[原 sort_user] "+sort_user);
tmpArray = sort_user;
tmpArray.length=1;
alert("[新 sort_user] "+sort_user);
//-->
</script>
tmpArray = sort_user;
===>
for (var k=0;k<sort_user.length;k++)tmpArray[k]=sort_user[k]
1、值拷贝;
2、引用拷贝;
对于简单数据类型,如number,string等的赋值都是值拷贝,而对于对象类型,如Array,自定义对象等的赋值都是引用拷贝,即只是拷贝了类似于C++中的指针,并不会将对象的所有值拷贝一份,所以如果有需要,数组赋值可以使用楼上的slice实现,自定义对象需要自己实现方法深层拷贝。