jquery 数组对象工具函数
$.inArray(value,arr,[index])
判断元素是否在数组中。
第一个参数 value:用于在数组中查找是否存在的某个值。
第二个参数 arr:待查找的数组。
第三个参数是可选参数,用来指定起始下标,默认为 0。
如果查找的值在数组中就返回这个值的下标,如果不在就返回-1。
var arr = [ 1, "爱来云", 2, 300 ];
$.inArray(300, arr);
$.each(object,callback)
遍历数组、对象、jquery 获取的对象集合等任意对象。
第一个参数 object:可以是任何对象,比如说 jquery 获取到的元素对象集合、数组或者对象。
第二个参数 callback:每一个遍历的元素要执行的回调函数。
var arr = [100,200,300];
$.each(arr, function(index,item){
console.log("数组下标" + index + "数组元素" + item);
});
$.makeArray(object)
可以把拥有 length 属性的类数组对象转成数组。
第一个参数 object:拥有 length 属性的类数组对象。
var $div = document.getElementsByTagName("div");
var divArr = $.makeArray($div);
console.log(divArr);
$.extend([deep],target,[objN])
用于把一个或多个对象的内容合并到目标对象,也是拷贝对象。
第一个参数 deep:是否开启深拷贝。
第二个参数 target:目标对象。
第三个参数 objN:准备拷贝给目标对象的一个或多个对象。
var obj1= {
num: 100,
data: {aaa: 200, bbb: 300},
};
var obj2 = {
num: 600,
otherNum: 900
};
$.extend(obj1, obj2); //obj2 合并到 obj1 中
$.extend(true,obj1,obj2); //obj2 合并到 obj1 中
如果第一个参数不传,则不进行深度拷贝,第一个对象上没有的属性会从第二个对象上 拷贝得到,第一个对象与第二个对象属性相同的属性值会完全拷贝到第一个对象上,第一个 对象上的同名属性值会被覆盖。
如果第一个参数为 true,且多个对象的某个同名属性也都是对象,则该属性对象的属性会进行合并,而不会覆盖。
如果第一个参数为 false,则不进行对象的拷贝。
另外一种用法是在组件化开发中合并配置参数与默认参数的时候,可以在不改变默认参数的去情况下得到一个新的设置参数用来设置组件数据。
var defaults = { flag: false, num: 5, title: "爱来云" };
var options = { flag: true, title: "ailaiyun" };
var settings = $.extend({}, defaults, options);
//合并默认对象和参数对象,不修改默 认对象
console.log(settings);
//{"flag":true,"num":5,"title":"ailaiyun"}