jq-$.extend方法使用说明

来源:互联网 发布:淘宝代充平台 编辑:程序博客网 时间:2024/06/05 17:51

jQuery的方法extend在扩展数组、对象方面有了不起的作用。


1. 数组extend

  • arr2的长度小于arr1
var arr1=[1,2,3];var arr2=[4,5,423,423];$.extend(arr1,arr2)//返回值为[4,5,3],同时改变arr1

数组arr1拼接arr2的时候,在对应的索引位置,arr1的值替换为arr2对应索引值,上面代码可以等价于arr1[0]=arr2[0],arr[1]=arr[1];

  • arr2的长度大于arr1
var arr1=[1,2,3];var arr2=[4,5,53,534534,534534];$.extend(arr1,arr2)//返回值为[4, 5, 53, 534534, 534534],同时改变arr1

当arr2的长度大于arr1的时候,超过arr1索引位置的值继续以arr2相应索引值补充,相当于arr1=arr2;

  • 数组中有空值
var arr2=[1,2,3,'',];var arr1=[4,5,53,534534,534534];$.extend(arr1,arr2)//arr1存在空值与空字符串,返回值为[4, 5, 53, 534534, 534534],同时改变arr1
var arr1=[1,2,3];var arr2=[4,,53,534534,534534];$.extend(arr1,arr2)//返回值[4, 2, 53, 534534, 534534],arr2的空位符不能替代arr1中相应的索引值,但是位置依然保留
var arr1=[1,2,3];var arr2=[4,,,,53,534534,534534];$.extend(arr1,arr2)//返回值[4, 2, 3, undefined , 53, 534534, 534534],超出的空位符在arr1与arr2都没有赋值
  • arr2为字面量数组
var arr1=[1,2,3]$.extend(arr1,['fsa'])//结果为['fsa', 2, 3],同等位置进行覆盖

2. 对象extend

  • obj1与obj2没有共同属性
var obj1={a:1,b:2,c:3};var obj2={d:4};$.extend(obj1,obj2);//返回值{a: 1, b: 2, c: 3, d: 4},追加obj2中的异样属性,obj1值改变为返回值,obj2依然不变
  • obj1与obj2有共同属性
var obj1={a:1,b:2,c:3};var obj2={d:4,b:'你好'};$.extend(obj1,obj2);//返回值{a: 1, b: "你好", c: 3, d: 4},属性相同的返回obj2的属性值
  • obj1与obj2有空字符串
var obj1={a:1,b:2,c:3};var obj2={d:4,b:''};$.extend(obj1,obj2);//返回值{a: 1, b: "", c: 3, d: 4},只要有同样属性,即使为空,返回值依然以obj2的为标准

3. 数组与对象extend

  • 数组拼接对象
var arr=[1,2,3];var obj={a:4};$.extend(arr,obj)//结果为[1,2,3],拼接对象的数组并没有变化
  • 对象拼接数组
var arr=[1,2,3];var obj={a:4};$.extend(obj,arr)//结果为{0: 1, 1: 2, 2: 3, a: 4},拼接数组的对象,会从0开始自动添加索引作为属性名,其属性值则为数组相应的索引值
  • 对象拼接数组(数组有空值)
var arr=[1,2,3,,''];var obj={a:4};$.extend(obj,arr)//结果为{0: 1, 1: 2, 2: 3, 4: "", a: 4}空值位置进行空出,不占位,空字符占位,值保持不变
1 0