<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script>function ccc(){
alert("改变之前"+aa[0].id)
}function aaa(aa1){
var dd=aa1.concat();
dd[0].id="xxxx";
alert(aa[0].id);
}
function bbb(){
aaa(aa);
}
var json = {
id :"1",
text : "2",
value : "3"
};
var aa=new Array();
aa[0]=json;</script>
<BODY>
<input type="button" onclick="bbb()" value="改变">
<input type="button" onclick="ccc()" value="值">
</BODY>
</HTML> 我只是想把json数组当做一个变量传递 在方法里将其复制给另外一个数组 ,另外一个数组修改而不改变原来数组的值,可是我这里虽然运用了concat 复制数组而不影响原来的值 可还是没反应 大家帮帮忙
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script>function ccc(){
alert("改变之前"+aa[0].id)
}function aaa(aa1){
var dd=aa1.concat();
dd[0].id="xxxx";
alert(aa[0].id);
}
function bbb(){
aaa(aa);
}
var json = {
id :"1",
text : "2",
value : "3"
};
var aa=new Array();
aa[0]=json;</script>
<BODY>
<input type="button" onclick="bbb()" value="改变">
<input type="button" onclick="ccc()" value="值">
</BODY>
</HTML> 我只是想把json数组当做一个变量传递 在方法里将其复制给另外一个数组 ,另外一个数组修改而不改变原来数组的值,可是我这里虽然运用了concat 复制数组而不影响原来的值 可还是没反应 大家帮帮忙
请参阅
concat 方法 (String) | join 方法 | String 对象应用于: Array 对象
要求
版本 3
返回一个新数组,这个新数组是由两个或更多数组组合而成的。array1.concat([item1[, item2[, . . . [, itemN]]]])
参数
array1
必选项。其他所有数组要进行连接的 Array 对象。
item1,. . ., itemN
可选项。要连接到 array1 末尾的其他项目。
说明
concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。如果某一项为数组,那么添加其内容到 array1 的末尾。如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。以下为从源数组复制元素到结果数组: 对于从正被连接到新数组的数组中复制的对象参数,复制后仍然指向相同的对象。不论新数组和源数组中哪一个有改变,都将引起另一个的改变。
对于连接到新数组的数值或字符串,只复制其值。一个数组中值有改变并不影响另一个数组中的值。