1、静态方法 isArray():
Array.isArray() // Array.isArray方法返回一个布尔值,表示参数是否为数组。 // 它可以弥补typeof运算符的不足。 var arr = [1, 2, 3]; console.log(typeof arr); // "object" Array.isArray(arr) // true // 上面代码中,typeof运算符只能显示数组的类型是Object, // 而Array.isArray方法可以识别数组。
2、实例(对象)方法 map():
map方法将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回。
var numbers = [1, 2, 3]; var res = numbers.map(function (n) { return n + 1; }); res: // [2, 3, 4] numbers:// [1, 2, 3] // 上面代码中,numbers数组的所有成员依次执行参数函数, // 运行结果组成一个新数组返回,原数组没有变化。
map方法接受一个函数作为参数。该函数调用时,map方法向它传入三个参数:当前值、当前位置和数组本身。
[1, 2, 3].map(function(elem, index, arr) { return elem * index; }); // [0, 2, 6] // 上面代码中,map方法的回调函数有三个参数,elem为当前成员的 // 值,index为当前成员的位置,arr为原数组([1, 2, 3])
3、forEach():
forEach方法与map方法很相似,也是对数组的所有成员依次执行参数函数。但是,forEach方法不返回值,只用来操作数据。这就是说,如果数组遍历的目的是为了得到返回值,那么使用map方法,否则使用forEach方法。
forEach的用法与map方法一致,参数是一个函数,该函数同样接受三个参数:当前值、当前位置、整个数组。
function log(elem, index, array) { console.log('[' + index + '] = ' + elem ); } [2, 5, 9].forEach(log); // [0] = 2 // [1] = 5 // [2] = 9
注意:forEach方法无法中断执行,总是会将所有成员遍历完。如果希望符合某种条件时,就中断遍历,则要使用for循环。
var arr = [1, 2, 3]; for (var i = 0; i < arr.length; i++) { if (arr[i] === 2) break; console.log(arr[i]); // 1 }
4、filter():
filter方法用于过滤数组成员,满足条件的成员组成一个新数组返回;
它的参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回;
该方法不会改变原数组;
filter方法的参数函数可以接受三个参数:当前成员,当前位置和整个数组。
// filter方法的参数函数可以接受三个参数:当前成员,当前位置和整个数组。 var res = [1, 2, 3, 4, 5].filter(function (elem, index, arr) { return index % 2 === 0; }); console.log(res); // [1, 3, 5] // 上面代码返回偶数位置的成员组成的新数组。
5、reduce();
reduce方法依次处理数组的每个成员,最终累计为一个值。reduce是从左到右处理(从第一个成员到最后一个成员)
reduce方法参数是一个函数,该函数接受以下两个参数。
1累积变量,默认为数组的第一个成员
2当前变量,默认为数组的第二个成员
var res = [1, 2, 3, 4, 5].reduce(function (a, b) { console.log(a, b); return a + b; }) // 1 2 // 3 3 // 6 4 // 10 5 res//最后结果:15
上面代码中,reduce方法求出数组所有成员的和:
第一次执行,a是数组的第一个成员1,b是数组的第二个成员2;
第二次执行,a为上一轮的返回值3,b为第三个成员3;
第三次执行,a为上一轮的返回值6,b为第四个成员4;
第四次执行,a为上一轮返回值10,b为第五个成员5;
至此所有成员遍历完成,整个方法的返回值就是最后一轮的返回值15。
6、indexOf()、lastIndexOf()方法:
indexOf方法返回给定元素在数组中第一次出现的位置,返回结果是匹配开始的位置。如果没有出现则返回-1。
var a = ['a', 'b', 'c']; a.indexOf('b'); // 1 a.indexOf('y'); // -1 // indexOf方法还可以接受第二个参数,表示搜索的开始位置。 ['a', 'b', 'c'].indexOf('a', 1); // -1 // 上面代码从1号位置开始搜索字符a,结果为-1,表示没有搜索到。
lastIndexOf方法返回给定元素在数组中最后一次出现的位置,如果没有出现则返回-1;
lastIndexOf方法的用法跟indexOf方法一致,主要的区别lastIndexOf从尾部开始匹配,indexOf则是从头部开始匹配。
另外,lastIndexOf的第二个参数表示从该位置起向前匹配。
var a = [2, 5, 9, 2]; a.lastIndexOf(2); // 3 a.lastIndexOf(7); // -1
注意:这两个方法不能用来搜索NaN的位置,即它们无法确定数组成员是否包含NaN。如下:
[NaN].indexOf(NaN); // -1 [NaN].lastIndexOf(NaN);// -1
这是因为这两个方法内部,使用严格相等运算符(===)进行比较,而NaN呢,就比较狠,它连自己都不等于,是唯一一个不等于自身的值!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 炉石传说月初最强卡组有哪些 2024月初最强上分卡组推荐
- 狼人杀亮相原生鸿蒙之夜 假面科技强势登陆华为生态
- 12小时光线挑战!AI画质专家才是大平层首选
- 2024游戏IP报告:1~9月规模1960亿 68%用户愿为之付费
- 群星.2024-今夜一起为爱鼓掌电视剧原声带【相信音乐】【FLAC分轨】
- BIGFOUR.2013-大家利事【寰亚】【WAV+CUE】
- 李美凤.1992-情深透全情歌集【EMI百代】【WAV+CUE】
- 田震2024-《时光音乐会》[金峰][WAV+CUE]
- 群星《监听天碟3》[LECD]限量版[WAV+CUE]
- 心妤《声如夏花HQ》头版限量编号[WAV+CUE]
- 群星《摇滚五杰》[低速原抓WAV+CUE][1.1G]
- 群星 《2024好听新歌30》十倍音质 U盘音乐 [WAV+分轨]
- 群星《试音草原·女声篇》经典蒙古民歌[WAV+CUE][1G]
- 陈慧娴《永远是你的朋友》头版限量编号MQA-UHQCD2024[低速原抓WAV+CUE]
- 曼丽·女人三十《如果·爱》限量1:1母盘直刻[低速原抓WAV+CUE]