对数组的整体性操作
var nums1 = []; var nums2 = []; for(var i=0;i<10;i++){ nums1[i] = i+1; } alert(nums1); //var nums2 = nums1; //nums2 = nums1.splice(0); nums2 = nums1.concat(); nums2[0] = 10; nums2[9] = 0; alert(nums1); alert(nums2);【试问】两次弹出的nums1的结果分别是什么?
当把一个数组a赋给另外一个数组b时,只是为被赋值的数组a增加了一个新的引用。当修改赋值数组b的值时,被赋值的数组a也会感知到这个变化
【解决之道】
Array对象有两个String类具有的方法--concat()和splice()
* concat():处理数组跟处理字符串的方式一样,参数将被附加在数组末尾,返回的函数值是新的Array对象
* splice():跟String的slice()方法一样,返回的是具有特定项的新数组,如果只有一个参数,该方法将从该位置开始到数组结尾的所有项;如果有两个参数,将返回第一个位置和第二个位置之间的所有项,不包括第二个位置处的项。