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

首頁 > 開發 > JS > 正文

詳解JavaScript中的數組合并方法和對象合并方法

2024-05-06 16:44:13
字體:
來源:轉載
供稿:網友

1 數組合并

1.1 concat 方法

js;">var a=[1,2,3],b=[4,5,6];var c=a.concat(b);console.log(c);// 1,2,3,4,5,6console.log(a);// 1,2,3 不改變本身 

1.2 循環遍歷

var arr1=['a','b'];var arr2=['c','d','e'];for(var i=0;i<arr2.length;i++){   arr1.push(arr2[i]) }console.log(arr1);//['a','b','c','d','e']

1.3 apply

合并數組arr1和數組arr2,使用Array.prototype.push.apply(arr1,arr2)  or arr1.push.apply(arr1,arr2);

var arr1=['a','b'];var arr2=['c','d','e'];Array.prototype.push.apply(arr1,arr2);//或者arr1.push.apply(arr1,arr2);<br>console.log(arr1) //['a','b','c','d','e']

2 對象合并

2.1 $.extend()

var obj1= {'a': 1};var obj2= {'b': 1};var c = $.extend(obj1, obj2); console.log(obj1); // {a: 1, b: 1} obj1已被修改 //或者 <br>var obj3 = $.extend({}, obj1, obj2) <br>console.log(obj3); //{a: 1, b: 1} 不會改變obj1,obj2

2.2 遍歷賦值

var obj1={'a':1};var obj2={'b':2,'c':3};for(var key in obj2){   if(obj2.hasOwnProperty(key)===true){  <br>   //此處hasOwnProperty是判斷自有屬性,使用 for in 循環遍歷對象的屬性時,原型鏈上的所有屬性都將被訪問會避免原型對象擴展帶來的干擾      obj1[key]=obj2[key];} }console.log(obj1);//{'a':1,'b':2,'c':3};

2.3 Obj.assign()

  可以把任意多個的源對象自身的可枚舉屬性拷貝給目標對象,然后返回目標對象。

Object.assign(target, ...sources)//a. 復制一個對象<br>var obj = { a: 1 ,b:2};var copyObj = Object.assign({}, obj);console.log(copyObj); // { a: 1,b:2 }<br><br>//b.合并多個對象 var o1 = { a: 1 };var o2 = { b: 2 };var o3 = { c: 3 };var obj = Object.assign(o1, o2, o3);console.log(obj); // { a: 1, b: 2, c: 3 }console.log(o1); // { a: 1, b: 2, c: 3 }, 且目標對象自身也會改變。 

2.4 對象的深拷貝和淺拷貝

2.4.1 淺拷貝

var obj1={'a':1};var obj2={'b':{'b1':22,'b2':33}};$.extend(obj1, obj2);  //obj1拷貝了obj2的屬性console.log(obj1) // {'a':1,'b'{'b1':22,'b2':33}}console.log(obj1.b.b1) // 22obj2.b.b1=44;  //obj2重新賦值console.log(obj1.b.b1) // 44 obj1.b僅拷貝了對象的指引,所以受原obj2的影響

2.4.2 深拷貝

var obj1={'a':1};var obj2={'b':{'b1':22,'b2':33}};$.extend(true,obj1, obj2);  //第一個參數設為true表示深復制console.log(obj1) // {'a':1,'b'{'b1':22,'b2':33}}console.log(obj1.b.b1) // 22obj2.b.b1=44;  //obj2重新賦值console.log(obj1.b.b1) // 22 obj1拷貝了obj2的所有屬性以及值,并不受obj2的影響

總結

以上所述是小編給大家介紹的JavaScript中的數組合并方法和對象合并方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双流县| 垣曲县| 海丰县| 睢宁县| 阳西县| 潞西市| 文昌市| 南召县| 呼图壁县| 南漳县| 泽州县| 浮梁县| 嘉荫县| 浮山县| 奎屯市| 平南县| 惠州市| 东乌珠穆沁旗| 岢岚县| 台南县| 灌南县| 鹤庆县| 吐鲁番市| 宁乡县| 瑞丽市| 全州县| 靖边县| 乌审旗| 萝北县| 平塘县| 大竹县| 郓城县| 乌兰浩特市| 江西省| 罗甸县| 固阳县| 金华市| 司法| 平定县| 锡林浩特市| 石渠县|