0
点赞
收藏
分享

微信扫一扫

js数组引用

总结归纳:

   1、普通的赋值是复制栈区内容。

   2、基本类型的数据在栈区存放数据自身,var a=b; //a与b无关。

        引用类型数据在栈区存放数据地址。  var a=b; //a,b联动

   3、基本数据类型包括:undefined,boolean,number,string,null

         引用类型:对象、数组、函数

用jq的$.extend方法(多维数组)


<script type="text/javascript">  
var a=[1];
var b;
b= $.extend(true,{},a)
//var zNodesNew = $.extend(true,[],zNodesTmp);
b[0]++;  
alert(b[0]);
</script>

用数组的concat方法


<script type="text/javascript">  
var a=[1];
var b=a.concat();
b[0]++;
alert(a[0]);
</script>

for循环数组,挨个赋值


var a=[1,2,3];
var b=[];
for(var i=0; i<a.length; i++){
b[i]=a[i];
}

数组的slice()方法


arrayObject.slice(start,end)

返回一个新数组,包含从start到end(不包含此元素)的arrayObject中元素。该方法不修改原数组,而是返回一个新数组。

var arr =["a","b","c","d","e"];
var arr1=arr.slice(2,4);
console.log(arr1); //"c,d"

var arr2=arr.slice(0);
console.log(arr2); //"a,b,c,d,e"

arr2[2]="wang"
console.log(arr); //"a,b,c,d,e" 与原数组不联动
console.log(arr2); //"a,b,wang,d,e"

 

举报

相关推荐

0 条评论