首页 > 代码库 > 数组与对象基本操作(JQuery)
数组与对象基本操作(JQuery)
首先呢,你要理解什么是数组什么是对象。
数组(array):是一种有序的值的集合。
对象(object):是一种无序的属性集合,每个属性都有自己的名字和值。
$符号是JQuery符
1 jQuery.each(object, [callback]) 遍历数组或对象 2 参数: 3 object:需要例遍的对象 或数组。 4 callback:每个成员/元素执行的回调函数。 5 遍历数组: 6 $.each(["q", "w", "e", "r"], function (i, n) { //遍历数组each() 7 alert("item :" + i + ":" + n) //i为数组序号,n为对应的值 8 }) 9 10 11 12 遍历对象:13 $.each({ name: "qqj", lang: "js" }, function (i, n) { 14 // 遍历对象 {name:name , value:qqj}15 alert("name:" + i + "\nvalue:" + n); //i为名字 n为值16 })
jQuery.extend([deep], target, object1, [objectN]) 扩展对象
用一个或多个其他对象来扩展一个对象,返回被扩展的对象。
如果不指定target,则给jQuery命名空间本身进行扩展。这有助于插件作者为jQuery增加新方法。 如果第一个参数设置为true,则jQuery返回一个深层次的副本,递归地复制找到的任何对象。否则的话,副本会与原对象共享结构。 未定义的属性将不会被复制,然而从对象的原型继承的属性将会被复制。
target:一个对象,如果附加的对象被传递给这个方法将那么它将接收新的属性,如果它是唯一的参数将扩展jQuery的命名空间。
object1:待合并到第一个对象的对象。
objectN:待合并到第一个对象的对象。
var ob1 = { name: "qq", age: 25, tt: "uenuhs", qq: 676373 }; var ob2 = { name: "rain", age: 33, ww: "ww", ee: "ee" }; $.extend(ob1, ob2); //扩充对象 ,相同属性,以后面修改,前一个没有则添加 var text = ""; $.each(ob1, function (i, n) { //i 为名字 ,n为值 text += ("name:" + i + "value:" + n+“\n”); })
//输出为name:name
value:rain
name:age
value:33
name:tt
value:uenuhs
name:qq
value:676373
name:ww
value:ww
name:ee
value:ee
jQuery.grep(array, callback, [invert])
使用过滤函数过滤数组元素。
array:待过滤数组。
callback:此函数将处理数组每个元素。第一个参数为当前元素,第二个参数而元素索引值。此函数应返回一个布尔值。
invert:如果 "invert" 为 false 或为设置,则函数返回数组中由过滤函数返回 true 的元素,当"invert" 为 true,则返回过滤函数中返回 false 的元素集。
1 $.grep( [0,1,2], function(n,i){ //n为数组值 ,i为数组序号2 return n > 0;3 }); //默认为false 返回满足条件的数组
jQuery.makeArray(obj)
将类数组对象转换为数组对象。
类数组对象有 length 属性,其成员索引为 0 至 length - 1。实际中此函数在 jQuery 中将自动使用而无需特意转换。
1 <div>First</div><div>Second</div><div>Third</div><div>Fourth</div> //这个在HTML中为4个DIV元素2 var arr = jQuery.makeArray(document.getElementsByTagName("div"));3 arr.reverse(); // 使用数组翻转函数4 结果:Fourth5 Third6 Second7 First
jQuery.map(arr|callback)
将一个数组中的元素转换到另一个数组中。
array:待转换数组。
callback :为每个数组元素调用,而且会给这个转换函数传递一个表示被转换的元素作为参数。函数可返回任何值。
1 var arr=[3,4,5,6,7,8] 2 var arr3 = $.map(arr, function (n) { //返回ARR数组经过处理之后的新数组 map3 return n + 2; n为数组元素值4 });5 $.each(arr3, function (n, i) { 6 alert( i); //输出5,6,7,8,9,10 7 })
jQuery.inArray(value,array,[fromIndex])
查找一个元素在数组中的位置
value:用于在数组中查找是否存在的元素
array:被查找数组。
fromIndex:用来搜索数组队列,默认值为0。
1 var arr=["qq","ww","ee","rr",3,6,9];2 $.inArray("qq",arr); //返回 0 ,第一个序号值3 $.inArray("ee",arr,3) //返回-1,从3的位置开始检索 ,-1表示没有找到4 $.inArray("rr",arr) //返回3 ,在数组中序号3
jQuery.merge(first,second)
合并两个数组
first:第一个待处理数组,会改变其中的元素。
second:第二个待处理数组,不会改变其中的元素。
1 var arr1=["a","b","c"];2 var arr2=[1,2,3];3 $.merge(arr1,arr2); //将arr2附加到 arr1中4 //则arr1为arr1=["a","b","c",1,2,3]; arr2=[1,2,3] 不变