1. $.each(array, [callback]) 遍历[常用]
解释:

1、不同于例遍
jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象(不仅仅是数组哦~)。

2、回调函数拥有两个参数:第一个为对象的成员或数组的索引, 第二个为对应变量或内容. 如果需要退出 each 循环可使回调函数返回 false,
其它返回值将被忽略。

3、each遍历,相信都不陌生,在平常的事件处理中,是for循环的变体,但比for循环强大.在数组中,它可以轻松的攻取数组索引及对应的值。

4、相对于原生的for..in,each更强壮一点. for..in也可以遍历数组,并返回对应索引,但值是需要通过arrName[key]来获取。

例:

 var _mozi=['墨家','墨子','墨翟','兼爱非攻','尚同尚贤']; //本文所用到的数组, 下同
$.each(_mozi,function(key,val){
//回调函数有两个参数,第一个是元素索引,第二个为当前值
alert('_mozi数组中 ,索引 : '+key+' 对应的值为: '+val);
});

2. $.grep(array, callback, [invert]) 过滤数组[常用]
解释:

1、使用过滤函数过滤数组元素.此函数至少传递两个参数待过滤数组,过滤函数,(第三个参数为true或false,对过滤函数返回值取反,个人觉得用处不大)。

2、过滤函数必须返回 true 以保留元素或 false 以删除元素。

3、过滤函数还可以是可设置为一个字条串(个人不推荐,欲了解自行查阅);

例:

  $.grep(_mozi, function (val, key) {
//过滤函数有两个参数,第一个为当前元素,第二个为元素索引
if (val == '墨子') {
alert('数组值为 墨子 的下标是: ' + key);
}
}); var _moziGt1 = $.grep(_mozi, function (val, key) {
return key > 1;
});
alert('_mozi数组中索引值大于1的元素为: ' + _moziGt1); var _moziLt1 = $.grep(_mozi, function (val, key) {
return key > 1;
}, true);
//此处传入了第三个可靠参数,对过滤函数中的返回值取反
alert('_mozi数组中索引值小于等于1的元素为: ' + _moziLt1);

3. $.map(array,[callback])按给定条件转换数组 [一般]
解释:

1、作为参数的转换函数会为每个数组元素调用, 而且会给这个转换函数传递一个表示被转换的元素作为参数。

2、转换函数可以返回转换后的值、null(删除数组中的项目)或一个包含值的数组, 并扩展至原始数组中。

3、这个是个很强大的方法,但并不常用. 它可以根据特定条件,更新数组元素值,或根据原值扩展一个新的副本元素.

例:

 var _mapArrA = $.map(_mozi, function (val) {
return val + '[新加]';
});
var _mapArrB = $.map(_mozi, function (val) {
return val == '墨子' ? '[只给墨子加]' + val : val;
});
var _mapArrC = $.map(_mozi, function (val) {
//为数组元素扩展一个新元素
return [val, (val + '[扩展]')];
});
alert('在每个元素后面加\'[新加]\'字符后的数组为: ' + _mapArrA);
alert('只给元素 墨子 添加字符后的数组为: ' + _mapArrB);
alert('为原数组中每个元素,扩展一个添加字符\'[新加]\'的元素,返回的数组为 ' + _mapArrC);

4 .$.inArray(val,array)判断值是否存在于数组中[常用]
解释:

1、确定第一个参数在数组中的位置, 从0开始计数(如果没有找到则返回 -1 )。

2、记得indexOf()方法了吗?
indexOf()返回字符串的首次出现位置,而$.inArray()返回的是传入参数在数组中的位置,同样的,如果找到的,

  返回的是一个大于或等于0
的值,若未找到则返回-1.现在, 知道怎么用了吧. 有了它, 判断某个值是否存在于数组中,就变得轻而易举了.

例:

 var _exist=$.inArray('墨子',_mozi);
var _inexistence=$.inArray('卫鞅',_mozi)
if(_exist>=0){
alert('墨子 存在于数组_mozi中,其在数组中索引值是: '+_exist);
}
if(_inexistence<0){
alert('卫鞅 不存在于数组_mozi中!,返回值为: '+_inexistence+'!');
}

5 .$.merge(first,second)合并两个数组[一般]
解释:

1、返回的结果会修改第一个数组的内容——第一个数组的元素后面跟着第二个数组的元素。
2、这个方法是用jQuery的方法替代原生concat()方法, 但功能并没有concat()强大, concat()可以同时合并多个数组。

例:

 //原生concat()可能比它还简洁点
_moziNew=$.merge(_mozi,['鬼谷子','商鞅','孙膑','庞涓','苏秦','张仪'])
alert('合并后新数组长度为: '+_moziNew.length+'. 其值为: '+_moziNew);

6 .$.unique(array)过滤数组中重复元素[不常用]
解释:

1、删除数组中重复元素. 只处理删除DOM元素数组,而不能处理字符串或者数字数组.。

2、第一次看到这个方法,觉得这是个很便捷的方法, 可以过滤重复, 哈, 多完美, 但仔细一看, 仅限处理DOM元素.

3、功能8折了.所以, 我给它定义成了一个不常用的元素, 至少, 我用jQuery以来没用到过它.

例:

 var _h2Arr = $.makeArray(h2obj);
//将数组_h2Arr重复一次
_h2Arr = $.merge(_h2Arr, _h2Arr);
var _curLen = _h2Arr.length;
_h2Arr = $.unique(_h2Arr);
var _newLen = _h2Arr.length;
alert('数组_h2Arr原长度值为: ' + _curLen + ' ,过滤后为: ' + _newLen + ' .共过滤 ' + (_curLen - _newLen) + '个重复元素')

7. $.makeArray(obj) 将类数组对象转换为数组[不常用]
解释:

1、将类数组对象转换为数组对象, 类数组对象有 length 属性,其成员索引为0至 length-1。

2、这是个多余的方法, 无所不能的$本来就包含了这个功能。

jQuery官网上解释的非常模糊. 其实, 它就是将某个类数组对象(比如用getElementsByTagName获取的元素对象集合)转换成数组对象.

例:

 var _makeArr=$.makeArray(h2obj);
alert('h2元素对象集合的数据类型转换为: '+_makeArr.constructor.name);//输出Array

8. $(dom).toArray()将所有DOM元素恢复成数组[不常用]
解释:

1、把jQuery集合中所有DOM元素恢复成一个数组,并不常用的方法, 个人甚至觉得它和$.makeArray一样多余.

例:

 var _toArr=$('h2').toArray();
alert('h2元素集合恢复后的数据类型是: '+_toArr.constructor.name);

jQuery数组处理的更多相关文章

  1. JavaScript jQuery 中定义数组与操作及jquery数组操作

    首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...

  2. JQuery数组详解(含实例)

    <!doctype html>jQuery数组处理详解(含实例演示)@Mr.Think 演示所用数组 var _mozi=['墨家','墨子','墨翟','兼爱非攻','尚同尚贤']; 1 ...

  3. jquery数组删除指定元素的方法:grep()

    jquery数组删除指定元素的方法:grep() 金刚 数组 jquery javascript 元素 遇到的问题 今天遇到一个问题,删除数组中的一个指定元素,并返回新的数组. 我定义的js数组是这样 ...

  4. jquery数组内多维对象

    jquery数组内多维对象 var postData=[],obj,list; obj = !!obj ? obj : $('#dist_meici_checkinfo_form'); obj.fin ...

  5. Jquery数组操作

    jQuery的数组处理,便捷,功能齐全. 最近的项目中用到的比较多,深感实用,一步到位的封装了很多原生js数组不能企及的功能. 最近时间紧迫,今天抽了些时间回过头来看 jQuery中文文档 中对数组的 ...

  6. jQuery数组处理汇总

    jQuery数组处理汇总   有段时间没写什么了, 打算把jquery中的比较常用的数组处理方法汇总一下 $.each(array, [callback])遍历,很常用 1 2 3 4 5 6 7 8 ...

  7. jquery数组之存放checkbox全选值示例代码

    使用jquery数组可以存放checkbox全选值,下面有个不错的示例,感兴趣的朋友可以参考下. 复制代码代码如下: <input type="checkbox" id=&q ...

  8. js,jQuery数组常用操作小结

    一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift() ...

  9. jQuery数组处理全解

    jQuery的数组处理.便捷.功能齐全.最近的项目中用到的比较多,深感实用,一步到位的封装了很多原生JavaScript数组不能企及的功能.最近时间紧迫,今天抽了些时间回过头来看jQuery中文文档中 ...

  10. javascript jquery数组操作小结

    ----------------------------------------------------------定义数组-------------------------------------- ...

随机推荐

  1. [Hive - Tutorial] Built In Operators and Functions 内置操作符与内置函数

    Built-in Operators Relational Operators The following operators compare the passed operands and gene ...

  2. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇01:播放序列动画》

    1.播放序列动画 系列动画播放概述 2D游戏中的动画系统,不同于3D游戏.3D游戏中,角色美术资源不仅包含角色模型的,还包括角色的贴图和动作等,模型本身自带角色的动作动画效果.2D游戏中,角色美术资源 ...

  3. POJ 1308 Is It A Tree? (并查集)

    Is It A Tree? 题目链接: http://acm.hust.edu.cn/vjudge/contest/123393#problem/M Description A tree is a w ...

  4. Spring MVC MultiActionController example

    In Spring MVC application, MultiActionController is used to group related actions into a single cont ...

  5. [转载]Linux LVM硬盘管理及LVM扩容

    最近项目中一直在用Linux,其中涉及到了Linux的LVM,本来想自己写一篇关于LVM的文章,搜了一下,发现了一篇更好的,转载过来,也感谢作者gaojun 原文Linux LVM硬盘管理及LVM扩容 ...

  6. Java线程池学习

    Java线程池学习 Executor框架简介 在Java 5之后,并发编程引入了一堆新的启动.调度和管理线程的API.Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在java ...

  7. codeforces 630D Hexagons!

    D. Hexagons! time limit per test 0.5 seconds memory limit per test 64 megabytes input standard input ...

  8. 论DATASNAP中间件对象池

    在此,笔者以DATASNAP为例,其它中间件以此类推. 中间件为什么要使用对象池? 对象池——让所有的对象免堕轮回之苦,对象不再为其生和死而烦恼. 要想让中间件长久稳定地运行,做到无人值守,对象池很重 ...

  9. 用ALAssetsLibrary将过滤后图片写入照片库

    转载自:http://blog.sina.com.cn/s/blog_61235faa0100z3dp.html CIImage *saveToSave = [filter outputImage]; ...

  10. UVa 11971 Polygon (数学,转化)

    题意:一根长度为n的木条,随机选k个位置将其切成k+1段,问这k+1段能组成k+1条边的多边形的概率. 析:这个题,很明显和 n 是没有任何关系的,因为无论 n 是多少那切多少段都可以,只与切多少段有 ...