1.jQuery.grep( array, function(elementOfArray, indexInArray) [, invert ] )

描述: 查找满足过滤函数的数组元素。原始数组不受影响。

  • array   Type: ArrayLikeObject   用于查询元素的类数组对象.
  • function   Type: Function( Object  elementOfArray, Integer  indexInArray ) => Boolean
    该函数来处理每项元素的比对。第一个参数是正在被检查的数组的元素,第二个参数是该元素的索引值。该函数应返回一个布尔值。this将是全局的window对象。
  • invert   Type: Boolean   如果“invert”为false,或没有提供,函数返回一个“callback”中返回true的所有元素组成的数组。如果“invert”为true,函数返回一个“callback”中返回false的所有元素组成的数组。

$.grep()方法会删除数组必要的元素,以使所有剩余元素通过过滤函数的检查。该测试是一个函数传递一个数组元素和该数组内这个的索引值。只有当测试返回true,该数组元素将返回到结果数组中。

该过滤器的函数将被传递两个参数:当前正在被检查的数组中的元素,及该元素的索引值。该过滤器函数必须返回'true'以包含在结果数组项。

 1 <!DOCTYPE html>
2 <html>
3 <head>
4 <style>
5 div { color:blue; }
6 p { color:green; margin:0; }
7 span { color:red; }
8 </style>
9 <script src="http://code.jquery.com/jquery-latest.js"></script>
10 </head>
11 <body>
12 <div></div>
13 <p></p>
14 <span></span>
15
16 <script>
17 var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ];
18 $("div").text(arr.join(", "));
19
20 arr = jQuery.grep(arr, function(n, i){
21 return (n != 5 && i > 4);
22 });
23 $("p").text(arr.join(", "));
24
25 arr = jQuery.grep(arr, function (a) { return a != 9; });
26 $("span").text(arr.join(", "));
27
28 </script>
29
30 </body>
31 </html>
 1 <script type='text/javascript' src="/jquery.js"></script>
2 <script type="text/javascript">
3 $().ready(
4 function(){
5 var array = [1,2,3,4,5,6,7,8,9];
6 var filterarray = $.grep(array,function(value){
7 return value > 5;//筛选出大于5的
8 });
9 for(var i=0;i<filterarray.length;i++){
10 alert(filterarray[i]);
11 }
12 for (key in filterarray){
13 alert(filterarray[key]);
14 }
15 }
16 );
17 </script>

2.jQuery.each( collection, callback(indexInArray, valueOfElement) )

描述: 一个通用的迭代函数,它可以用来无缝迭代对象和数组。数组和类似数组的对象通过一个长度属性(如一个函数的参数对象)来迭代数字索引,从0到length - 1。其他对象通过其属性名进行迭代。

  • jQuery.each(array, callback )

    • array   类型: Array   遍历的数组。
    • callback   类型: Function( Integer indexInArray, Object value )   该函数会在每个对象上(迭代)调用。
  • jQuery.each( object, callback )

    • object   类型: Object   遍历的对象。
    • callback   类型: Function( String propertyName, Object valueOfProperty )   该函数会在每个对象上(迭代)调用。

$.each()函数和$(selector).each()是不一样的,那个是专门用来遍历一个jQuery对象。$.each()函数可用于迭代任何集合,无论是“名/值”对象(JavaScript对象)或数组。在迭代数组的情况下,回调函数每次传递一个数组索引和相应的数组值作为参数。(该值也可以通过访问this关键字得到,但是JavaScript将始终将this值作为一个Object ,即使它是一个简单的字符串或数字值。)该方法返回其第一个参数,这是迭代的对象。

注意: $.each()函数会在内部检索并且使用传递集合的 length属性。 所以,如果集合有一个名为length的属性 - 比如 {bar: 'foo', length: 10} - 这个函数可能无法正常工作。

 1 <!doctype html>
2 <html lang="en">
3 <head>
4 <meta charset="utf-8">
5 <title>jQuery.each demo</title>
6 <style>
7 div {
8 color: blue;
9 }
10 div#five {
11 color: red;
12 }
13 </style>
14 <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
15 </head>
16 <body>
17
18 <div id="one"></div>
19 <div id="two"></div>
20 <div id="three"></div>
21 <div id="four"></div>
22 <div id="five"></div>
23
24 <script>
25 var arr = [ "one", "two", "three", "four", "five" ];
26 var obj = { one: 1, two: 2, three: 3, four: 4, five: 5 };
27
28 jQuery.each( arr, function( i, val ) {
29 $( "#" + val ).text( "Mine is " + val + "." );
30
31 // Will stop running after "three"
32 return ( val !== "three" );
33 });
34
35 jQuery.each( obj, function( i, val ) {
36 $( "#" + i ).append( document.createTextNode( " - " + val ) );
37 });
38 </script>
39
40 </body>
41 </html>
 1 <script type='text/javascript' src="/jquery.js"></script>
2 <script type="text/javascript">
3 $().ready(
4 function(){
5 var anObject = {one:1,two:2,three:3};//对json数组each
6 $.each(anObject,function(name,value) {
7 alert(name);
8 alert(value);
9 });
10 var anArray = ['one','two','three'];
11 $.each(anArray,function(n,value){
12 alert(n);
13 alert(value);
14 }
15 );
16 }
17 );
18 </script>

3.jQuery.inArray( value, array [, fromIndex ] )

描述: 在数组中查找指定值并返回它的索引(如果没有找到,则返回-1)。

  • value   类型: Anything   要查找的值。
  • array   类型: Array   一个数组,通过它来查找。
  • fromIndex   类型: Number   数组索引值,表示从哪里在开始查找。默认值是0,这将查找整个数组。

$.inArray()方法类似于JavaScript的原生.indexOf()方法,没有找到匹配元素时它返回-1。如果数组第一个元素匹配value(参数) ,那么$.inArray()返回0。

因为JavaScript将0视为false(即 0 == false, 但是 0 !== false),要检查在array中是否存在value, 你需要检查它是否不等于(或大于)-1。

值之间的比较是严格比较(愚人码头注:即,===或!==比较)。下面这段代码返回 -1 (没有找到) , 因为字符串数组中不可能找到一个数字:

$.inArray( 5 + 5, [ "8", "9", "10", 10 + "" ] );
 1 <!DOCTYPE html>
2 <html>
3 <head>
4 <style>
5 div { color:blue; }
6 span { color:red; }
7 </style>
8 <script src="http://code.jquery.com/jquery-latest.js"></script>
9 </head>
10 <body>
11
12 <div>"John" found at <span></span></div>
13 <div>4 found at <span></span></div>
14 <div>"Karl" not found, so <span></span></div>
15 <div>"Pete" is in the array, but not at or after index 2, so <span></span></div>
16 <script>var arr = [ 4, "Pete", 8, "John" ];
17 var $spans = $("span");
18 $spans.eq(0).text(jQuery.inArray("John", arr));
19 $spans.eq(1).text(jQuery.inArray(4, arr));
20 $spans.eq(2).text(jQuery.inArray("Karl", arr));
21 $spans.eq(3).text(jQuery.inArray("Pete", arr, 2));
22 </script>
23
24 </body>
25 </html>
 1 <script type='text/javascript' src="/jquery.js"></script>
2 <script type="text/javascript">
3 $().ready(
4 function(){
5 var anArray = ['one','two','three'];
6 var index = $.inArray('two',anArray);
7 alert(index);//返回该值在数组中的键值,返回1
8 alert(anArray[index]);//value is two
9 }
10 );
11 </script>

4.jQuery.map( array, callback(elementOfArray, indexInArray) )

  • jQuery.map( array, callback(elementOfArray, indexInArray) )

    • array
      类型: Array
      待转换数组。
    • callback(elementOfArray, indexInArray)
      类型: Function()
      处理每一个元素的函数。第一个参数是数组元素,第二个参数是该元素的索引值。该函数可以返回任何值。在函数内部,this将是全局的window对象。
  • jQuery.map( arrayOrObject, callback( value, indexOrKey ) )

    • arrayOrObject   类型: Array,Object   待转换数组或对象。
    • callback( value, indexOrKey )   类型: Function()   处理每一个元素的函数。第一个参数是数组中元素或对象的值,第二个参数是该元素在数组中的索引值或该对象的键。该函数可以返回任何值,该返回值会被添加到数组中。若返回是数组,则会将该数组中的元素添加到最终的结果数组中。在函数内部, this指的是全球(window)的对象。
    • 如果你希望处理一个jQuery对象——例如,$('div').map( callback ); — 使用 .map() 代替.

      $.map()方法会在数组的每一个元素或对象上应用一个函数并将结果映射到一个新的数组中。在jQuery 1.6之前,$.map()只支持遍历数组和类似数组的对象 。在jQuery 1.6也支持遍历对象。

      类数组(Array-like)对象——也就是那些含有.length属性 以及 在索引值为.length - 1 的位置有值的对象,必须将其转化成真正的数组之后才能传递给 $.map()方法使用。jQuery 库提供了 $.makeArray() 方法来完成这样的转换。

    •  1 // The following object masquerades as an array.
      2 var fakeArray = {"length": 1, 0: "Addy", 1: "Subtracty"};
      3
      4 // Therefore, convert it to a real array
      5 var realArray = $.makeArray( fakeArray )
      6
      7 // Now it can be used reliably with $.map()
      8 $.map( realArray, function(val, i) {
      9 // do something
      10 });

      在该方法中提供的转换函数会应用在数组或对象的顶级(top-level)元素上,并且该转换函数中有两个参数:元素在数组或对象中的值及该值所对应的索引值或键。

      该函数可以返回:

      • 转换后的值,该值会被映射到最终的结果数组中
      • null或者undefined, 用于移除该元素
      • 数组,会将该数组中的元素添加到最终的结果数组中
      •  1 <!DOCTYPE html>
        2 <html>
        3 <head>
        4 <style>
        5 div { color:blue; }
        6 p { color:green; margin:0; }
        7 span { color:red; }
        8 </style>
        9 <script src="http://code.jquery.com/jquery-latest.js"></script>
        10 </head>
        11 <body>
        12 <div></div>
        13 <p></p>
        14 <span></span>
        15
        16 <script>
        17 var arr = [ "a", "b", "c", "d", "e" ];
        18 $("div").text(arr.join(", "));
        19
        20 arr = jQuery.map(arr, function(n, i){
        21 return (n.toUpperCase() + i);
        22 });
        23 $("p").text(arr.join(", "));
        24
        25 arr = jQuery.map(arr, function (a) {
        26 return a + a;
        27 });
        28 $("span").text(arr.join(", "));
        29
        30 </script>
        31
        32 </body>
        33 </html>
         1 <script type='text/javascript' src="/jquery.js"></script>
        2 <script type="text/javascript">
        3 $().ready(
        4 function(){
        5 var strings = ['0','1','2','3','4','S','6'];
        6 var values = $.map(strings,function(value){
        7 var result = new Number(value);
        8 return isNaN(result) ? null:result;//isNaN:is Not a Number的缩写
        9 }
        10 );
        11 for (key in values) {
        12 alert(values[key]);
        13 }
        14 }
        15 );
        16 </script>

jQuery数组($.grep,$.each,$.inArray,$.map)处理函数详解的更多相关文章

  1. jQuery.attr() 函数详解

    一,jQuery.attr()  函数详解: http://www.365mini.com/page/jquery-attr.htm 二,jQuery函数attr()和prop()的区别: http: ...

  2. jQuery.ready() 函数详解

    jQuery.ready() 函数详解 ready()函数用于在当前文档结构载入完毕后立即执行指定的函数. 该函数的作用相当于window.onload事件. 你可以多次调用该函数,从而绑定多个函数, ...

  3. jquery inArray()函数详解

    jquery inarray()函数详解 jquery.inarray(value,array)确定第一个参数在数组中的位置(如果没有找到则返回 -1 ). determine the index o ...

  4. Jquery之each函数详解

    最近项目被each函数坑惨了,想来还是好好整理下关于each函数的方方面面,一来方便自己查阅,二来为读者提供经验和教训,废话不多说,来看看Each函数到底是怎么坑人的. 一. 全局jQuery.eac ...

  5. 【转载】jQuery.extend 函数详解

    转载自:http://www.cnblogs.com/RascallySnake/archive/2010/05/07/1729563.html jQuery.extend 函数详解 JQuery的e ...

  6. jQuery.hasClass() 函数详解

    jQuery.hasClass() 函数详解 hasClass()函数用于指示当前jQuery对象所匹配的元素是否含有指定的css类名. 该函数属于jQuery对象(实例). 语法 JavaScrip ...

  7. STL之map与pair与unordered_map常用函数详解

    STL之map与pair与unordered_map常用函数详解 一.map的概述 map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称 ...

  8. js数组中foEach和map的用法详解 jq中的$.each和$.map

    数组中foEach和map的用法详解 相同点: 1.都是循环遍历数组(仅仅是数组)中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value, ...

  9. Python内置函数详解

    置顶   内置函数详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii https://docs.pyth ...

随机推荐

  1. there is nothing(i春秋CTF题解)

      (1)打开页面,显示为:there is nothing (2)抓包发现提示 (3)hint:ip,Large internal network 意为最大的内网网段IP,hint: ip,Larg ...

  2. 2019 GDUT Rating Contest III : Problem D. Lemonade Line

    题面: D. Lemonade Line Input file: standard input Output file: standard output Time limit: 1 second Memo ...

  3. Java 8 Stream API 详解

    Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利.高效的聚合操作(aggregate operation),或者大批量数据操作 (b ...

  4. Qt 自定义 进度条 纯代码

    一 结果图示 二 代码 头文件 #ifndef CPROGRESS_H #define CPROGRESS_H #include <QWidget> #include <QPaint ...

  5. 历史性突破:使用 .net core 日处理消息量超过 1.7 万条!

    业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程: .net core 和 WPF 开发升讯威在线客服系统:目录 https://blog.she ...

  6. electron踩坑系列之一

    前言 以electron作为基础框架,已经开发两个项目了.第一个项目,我主要负责用react写页面,第二项目既负责electron部分+UI部分. 做项目,就是踩坑, 一路做项目,一路踩坑,坑多不可怕 ...

  7. JMeter元件作用域实践指南

    从一个问题说起 对于以下测试脚本: 为了能调用进入房间接口,需要从考场接口获取考场token.为了调用考场接口,需要从登陆接口获取登陆token.元件说明如下: 学生登录,提取登录${token}传入 ...

  8. Java中的泛型 - 细节篇

    前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的泛型 - 细节篇>,希望对大家有帮助,谢谢 细心的观众朋友们可能发现了,现在的标题不再是入门篇,而是各种详细篇,细节篇: 是因为之 ...

  9. 201871030118-雷云云 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客 班级链接 这个作业要求链接 作业链接 我的课程学习目标 (1)体验软件项目开发中的两人合作,练习结对编程(2)掌握Github协作开发程序的操作方法(3)学习遗传算法 这个作 ...

  10. PMP考位抢夺攻略(二)

    为什么会有第二篇文章呢,因为北京周边的考点太难抢了,都不是页面样式能不能展示的问题了!!! 如何在网页完全打不开的情况下报考PMP? 首先,自动登录. 打开浏览器,输入网址http://exam.ch ...