js数组迭代方法 (every、some、filter、map、forEach) 介绍及其应用示例
标签:
JavaScript
ES5为数组新增了5个迭代方法,语法简单易懂,而且非常实用,大大方便了处理数组的任务。
这5个迭代方法的函数接受3个参数:数组中当前项的值、该项在数组中的索引值和数组对象本身。
1. every
作用:对数组中的每一项运行给定函数,如果每一项的运行结果都返回 true,则返回 true。
示例:
// 示例数组
var arr = [3, 'abc', 6, 0, '5', 8, true, null, function(){console.warn('hello')}, {a:1, b:2}];
var result = null;
// 判断数组中每一项是否都为 Number 类型
result = arr.every(function(item) {
return !isNaN(item);
});
console.log('结果:' + result); // 结果:false
2. some
作用:与 every 方法作用类似,但 every 是只有每一项都为 true 才整体返回 true,而 some 是只要数组任何一项返回 true 则整体返回 true。
示例:
// 判断数组中是否存在 Boolean 类型
result = arr.some(function(item) {
return typeof item === 'boolean';
});
console.log('结果:' + result); // 结果:true
3. filter
作用:顾名思义有“过滤”的意思,运行给定函数返回 false 的数组项会被过滤掉,而返回 true 的每一项会组成一个数组被整体返回。
示例:
// 返回数组中所有的偶数
result = arr.filter(function(item) {
if (!isNaN(item)) {
return item % 2 === 0;
}
});
console.log('结果:' + result); // 结果:6,0,8
4. map注:整体返回的是一个数组
作用:前面3个方法都是和 true | false 打交道的,即通过判断给定函数运行结果的布尔值来处理数组,map是直接针对每一项,返回每次运行给定函数结果组成的数组。
示例:
// 将数组所有项都转换成字符串
result = arr.map(function(item) {
return String(item);
});
console.log('结果:' + result); // 结果:'3','abc','6','0','5','8','true','null','function(){console.warn('hello')}','[object Object]'
5. forEach注:整体返回的是一个数组
作用:这个方法本质上和使用 for 循环迭代数组是一样的,但代码更加优雅简洁。
示例:
// 遍历数组,找到 Function 类型并运行
arr.forEach(function(item) {
if (typeof item === 'function') {
eval(item()); // console控制台输出:hello
}
});
注:这个方法没有返回值
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦