为了账号安全,请及时绑定邮箱和手机立即绑定

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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消