zoukankan      html  css  js  c++  java
  • JavaScript中对数组.map()、some()、every()、filter()、forEach的区别

    1、区别说明

    共同点:

             不会对原数组发生修改,而是返回新的变量,用变量接收。

    不同点:

           1、some():返回一个Boolean类型变量,判断是否有元素符合func条件

           2、every():返回一个Boolean类型变量,判断每个元素是否都符合func条件

           3、filter():返回一个新数组类型变量,数组符合func条件,新数组中的元素来源于原数组,新数组长度<=原数组长度

           4、map():返回一个新数组类型变量,新数组元素由每一次调用函数产生结果组成,新数组中的元素与原数组可完全不一样

           5、forEach():用法和map()相似,但是forEach()方法不返回值,forEach无法中断执行,如果需要中断需要改用for

    2、用法实例

    some()实例

    如果fun只有一个参数,那么参数是element。

    var arr = [1, 2, 3, 4, 5];
    var result=arr.some(function (elem, index, arr) {
      return elem >= 3;
    });
    //result: true

    every()实例

    如果fun只有一个参数,那么参数是element。

    var arr = [1, 2, 3, 4, 5];
    var result=arr.every(function (elem, index, arr) {
      return elem >= 3;
    });
    // result:false

    filter()实例

    如果fun只有一个参数,那么参数是element。

    var arr=[1, 2, 3, 4, 5]
    var result=arr.filter(function (elem, index, arr) {
      return index % 2 === 0;
    });
    // [1, 3, 5]

    可接收第二个参数,主要用于解决this的问题,但是用箭头函数可以规避这个问题

    var obj = { MAX: 3 };
    var myFilter = function (item) {
      if (item > this.MAX) return true;
    };
    var arr = [2, 8, 3, 4, 1, 3, 2, 9];
    arr.filter(myFilter, obj) // [8, 4, 9]

    map()实例

    如果fun只有一个参数,那么参数是element。

    var arr=[1, 2, 3]
    var result=arr.map(function(elem, index, arr) {
      return elem * index;
    });
    // [0, 2, 6]

    forEach()实例

    如果fun只有一个参数,那么参数是element。

    function log(element, index, array) {
      console.log('[' + index + '] = ' + element);
    }
    
    [2, 5, 9].forEach(log);
    // [0] = 2
    // [1] = 5
    // [2] = 9

    可接收第二个参数,主要用于解决this的问题,但是用箭头函数可以规避这个问题

    var out = [];
    [1, 2, 3].forEach(function(elem) {
      this.push(elem * elem);
    }, out);
    out // [1, 4, 9]
  • 相关阅读:
    [zt]【外刊IT评论网】我是如何教我5岁的女儿学编程的
    Three Lines (USACO 2012 US Open, Bronze Division Problem 2)
    my domain
    JQueryDialog(弹出窗口,遮蔽窗口)
    煲耳机
    去掉桌面图标阴影
    RSS有什么用?RSS是什么?
    采用交换机和HUB连接局域网有什么区别?
    电脑经常自动重启的原因
    使用hub(集线器)连接局域网实现文件共享
  • 原文地址:https://www.cnblogs.com/tiandi/p/13885252.html
Copyright © 2011-2022 走看看