jquery有两个map方法。
一个是主要用来遍历操作数组和对象,
另一个是主要用于遍历jquery对象。
法定义是
jQuery.map( array, callback(elementOfArray, indexInArray) )
看来和python的map方法差不多,只是参数顺序不同。
python里的map方法是这样定义的 map(function, iterable, ...),可以接收多个迭代对象。
所以我想把之前学习python map的示例用jquery重写下
示例一:
代码如下 | 复制代码 |
>>> def cube(x): return x*x*x >>> map(cube, range(1, 11)) [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000] |
用jquery写就是:
代码如下 | 复制代码 |
var arr = [1,2,3,4,5,6,7,8,9,10 ]; arr = jQuery.map(arr, function(n, i){ return (n*n*n); }); console.log(arr); |
示例二:
代码如下 | 复制代码 |
>>> def cube(x) : return x + x ... >>> map(cube , "abcde") ['aa', 'bb', 'cc', 'dd', 'ee'] |
用jquery实现是:
代码如下 | 复制代码 |
arr = [ "a", "b", "c", "d", "e" ]; arr = jQuery.map(arr, function(n, i){ return (n+n); }); console.log(arr); |
另外,jquery.map方法还可以实现类似python filter的功能
例三:
代码如下 | 复制代码 |
>>> def f(x): return x % 2 != 0 and x % 3 != 0 >>> filter(f, range(2, 25)) [5, 7, 11, 13, 17, 19, 23] |
用jquery.map实现就是:
代码如下 | 复制代码 |
arr=$.map( [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24], function (a) { return (a%2!=0&&a%3!=0?a : null); }); console.log(arr); |
前些天记录了java中for循环取map,发现用jquery的each一样可以取map(我称之为js的map,不要较劲),且顺序和map中顺序一致。废话少说,看代码
1
代码如下 | 复制代码 |
var map = { 地名: ["北京","天津","上海"], 民族: ["汉族","藏族","维吾尔族"] }; $.each(map,function(key,values){ console.log(key); $(values).each(function(){ console.log("t" + this); }); }); |
如果安装了firebug,控制台输出如下树状结构:
地名
北京
天津
上海
民族
汉族
藏族
维吾尔族
注意:jquery中的$().each和$.each的区别,前者只能遍历数组,后者可以遍历数组和对象
时间: 2024-09-13 13:16:38