jQuery学习笔记——操作数组集合

1、对数组和集合进行迭代

$.each(container, [callback])  

概述:通用遍历方法,可以遍历数组和对象。

不同于遍历jQuery对象的$('*').each() 方法,此方法可用于遍历任何对象。回调函数拥有两个参数:第一个对象的成员或数组索引,第二个为对应的变量内容。如果需要退出each循环可以使用回调函数返回false,其他返回值将被忽略。

参数:container 需要遍历的对象或者数组。

   callback(可选)每个成员、元素执行的回调函数。

示例:

//遍历数组
var originalArray = [100, 200, 300, 400, 500];
            $.each(originalArray, function (i,value) {
                //console.log(this.toString());
                console.log("item"+i+":"+value);
            });


//遍历对象
var objList = { name: "Jack", language: "JS",city:"New York" };
            $.each(objList, function (i, n) {
                console.log("Key:" + i + ",Value:" + n);
            });        

执行结果分别是:

item0:100
item1:200
item2:300
item3:400
item4:400
Key:name,Value:Jack
Key:language,Value:JS
Key:city,Value:New York

2、对数组进行筛选

$.grep(array,callback,[invert])

概述:使用过滤函数过滤数组元素

此函数至少传递两个参数:待过滤数组array和过滤函数callback。

示例:过滤数组中大于0的元素。

 

var array = [100, 200, 300, 400, 500]  ;
            $($.grep(array, function (n, i) {
                return n > 100;
            })).each(function (i, n)
            {
                console.log(n);
            });

执行结果:

200
300
400
500

注:$.grep和$.each的回调函数略有不同,grep是当前值n在前,索引i在后;each是索引值i在前,当前值n在后。

3、对数组进行转换

$.map(array, callback)

通过我们可以通过$.each遍历数组元素实现对数组的转换操作。但是jQuery有更好用的方式:$.map。

概述:遍历数组,为树立的个元素分别执行回调函数,并把回调函数的返回值收集到新数组。

此函数至少传递两个参数:待过滤数组array和过滤函数callback。

示例:

var strings = ['1', '2', 'S', '4','5'];
            var values = $.map(strings, function (value) {
                var result = new Number(value);
                return isNaN(result) ? null : result;
            });
            $(values).each(function (i,n) {
                console.log(n.toString());
            });

执行结果:

1
2
4
5

4、其他

$.inArray(value, array)

概述:返回参数value在数组中的位置下标,从0开始计数(如果没有则返回-1)。

示例:

var arr = [1001, 'John', 1002, 'Tom'];
            var temp = $.inArray(1002, arr).toString();
            console.log(temp);

执行结果:2

$.makeArray(obj)

概述:将类数组对象转换为数组对象。

示例:

<div>
        <ul id="item">
            <li>aa</li>
            <li>bb</li>
            <li>cc</li>
            <li>dd</li>
            <li>ee</li>
        </ul>
</div>
var lis = document.getElementById('item').getElementsByTagName('li');
            //var lis = document.getElementsByTagName('li');
            console.log(lis.length);
            
            $.makeArray(lis);
            console.log(lis[2].innerHTML);

执行结果:cc

posted @ 2013-04-26 17:16  本杰克  阅读(329)  评论(0编辑  收藏  举报