forEach 是 ES5 中操作数组的一种方法, 主要功能是遍历数组, 例如:
- var arr = [1,2,3,4];
- arr.forEach(alert);
等价于:
- var arr = [1, 2, 3, 4];
- for (var k = 0, length = arr.length; k <length; k++) {
- alert(array[k]);
- }
forEach 方法中的 function 回调有三个参数: 第一个参数是遍历的数组内容, 第二个参数是对应的数组索引, 第三个参数是数组本身
因此:
- [].forEach(function(value,index,array){
- //code something
- });
等价于:
- $.each([],function(index,value,array){
- //code something
- })
通过它, 你可以遍历对象, 数组的属性值并进行处理.
使用说明
each 函数根据参数的类型实现的效果不完全一致:
1, 遍历对象 (有附加参数)
- $.each(Object, function(p1, p2) {
- this; // 这里的 this 指向每次遍历中 Object 的当前属性值
- p1; p2; // 访问附加参数
- }, ['参数 1', '参数 2']);
2, 遍历数组 (有附件参数)
- $.each(Array, function(p1, p2){
- this; // 这里的 this 指向每次遍历中 Array 的当前元素
- p1; p2; // 访问附加参数
- }, ['参数 1', '参数 2']);
3, 遍历对象 (没有附加参数)
- $.each(Object, function(name, value) {
- this; //this 指向当前属性的值
- name; //name 表示 Object 当前属性的名称
- value; //value 表示 Object 当前属性的值
- });
4, 遍历数组 (没有附加参数)
- $.each(Array, function(i, value) {
- this; //this 指向当前元素
- i; //i 表示 Array 当前下标
- value; //value 表示 Array 当前元素
- });
下面提一下 jQuery 的 each 方法的几种常用的用法
JS 代码
- var arr = [ "one", "two", "three", "four"];
- $.each(arr, function(){
- alert(this);
- });
- // 上面这个 each 输出的结果分别为: one,two,three,four
- var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]
- $.each(arr1, function(i, item){
- alert(item[0]);
- });
- // 其实 arr1 为一个二维数组, item 相当于取每一个一维数组,
- //item[0] 相对于取每一个一维数组里的第一个值
- // 所以上面这个 each 输出分别为: 1 4 7
- var obj = { one:1, two:2, three:3, four:4};
- $.each(obj, function(key, val) {
- alert(obj[key]);
- });
- // 这个 each 就有更厉害了, 能循环每一个属性
- // 输出结果为: 1 2 3 4
写一个例子;
- var arr = [1,2,3,4];
- arr.forEach(function(value,index,array){
- array[index] == value; // 结果为 true
- sum+=value;
- });
- console.log(sum); // 结果为 10
map:map 即是 "映射" 的意思 用法与 forEach 相似, 用法即:
- [].map(function(value,index,array){
- //code
- })
1,forEach 方法
语法:
array.forEach(function(currentValue, index, arr), thisValue)
参数:
在这里插入图片描述
- <!DOCTYPE html>
- <HTML lang="zh">
- <head>
- <meta charset="UTF-8" />
- <title>
- forEach 方法
- </title>
- </head>
- <body>
- <script type="text/javascript">
- var num = [2, 1, 3];
- num.forEach(function(currentValue, index, arr) {
- console.log("当前值:" + currentValue + "当前索引:" + index);
- });
- </script>
- </body>
- </HTML>
来源: http://www.jianshu.com/p/c5dd511e2128