国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript數組復制詳解

2019-11-19 17:45:43
字體:
來源:轉載
供稿:網友

前面的話

  前面的博文中介紹了對象拷貝,本文將詳細介紹數組復制

push

function copyArray(arr){  var result = [];  for(var i = 0; i < arr.length; i++){    result.push(arr[i]);  }  return result;}var obj1=[1,2,3];var obj2=copyArray(obj1);console.log(obj1); //[1,2,3]console.log(obj2); //[1,2,3]obj2.push(4);console.log(obj1); //[1,2,3]console.log(obj2); //[1,2,3,4] 

join
  使用該方法的缺點是數組中的項全部變成了字符串形式

function copyArray(arr){  var result = [];  result = arr.join().split(',');  return result;}var obj1=[1,2,3];var obj2=copyArray(obj1);console.log(obj1); //[1,2,3]console.log(obj2); //['1','2','3']obj2.push(4);console.log(obj1); //[1,2,3]console.log(obj2); //['1','2','3',4] 

concat

function copyArray(arr){  var result = [];  result = arr.concat();  return result;}var obj1=[1,2,3];var obj2=copyArray(obj1);console.log(obj1); //[1,2,3]console.log(obj2); //[1,2,3]obj2.push(4);console.log(obj1); //[1,2,3]console.log(obj2); //[1,2,3,4] 

slice

function copyArray(arr){  var result = [];  result = arr.slice();  return result;}var obj1=[1,2,3];var obj2=copyArray(obj1);console.log(obj1); //[1,2,3]console.log(obj2); //[1,2,3]obj2.push(4);console.log(obj1); //[1,2,3]console.log(obj2); //[1,2,3,4] 

深拷貝

  以上方法實現的僅是數組的淺拷貝,如果要實現數組的深拷貝,需要使用遞歸方法

function copyArray(arr,result){  var result = result || [];  for(var i = 0; i < arr.length; i++){    if(arr[i] instanceof Array){      result[i] = [];      copyArray(arr[i],result[i]);    }else{      result[i] = arr[i];    }        }  return result;}var obj1=[1,2,[3,4]];var obj2=copyArray(obj1);console.log(obj1[2]); //[3,4]console.log(obj2[2]); //[3,4]obj2[2].push(5);console.log(obj1[2]); //[3,4]console.log(obj2[2]); //[3,4,5]

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仪征市| 大化| 苏州市| 长宁区| 屏南县| 晋宁县| 西乡县| 昆山市| 江口县| 衢州市| 河曲县| 福建省| 广州市| 谢通门县| 星子县| 修武县| 丹巴县| 封丘县| 长海县| 白水县| 平舆县| 郴州市| 大冶市| 越西县| 大名县| 临泉县| 霞浦县| 荃湾区| 江门市| 新和县| 永吉县| 广安市| 砚山县| 玉溪市| 离岛区| 聂拉木县| 济源市| 特克斯县| 同德县| 广饶县| 阜宁县|