• ECMAScript5 数组的原型方法


    在 ECMAScript 5 中,对 Array 增加了几个原型方法,包括 indexOf 和 lastIndexOf 这两个定位方法,以及 every,some,forEach,filter,map,reduce 和 reduceRight 这几个迭代方法。

    Array.prototype.indexOfArray.prototype.lastIndexOf 这两个方法用于在数组中查找一个元素,如果找到则返回该元素所在位置,否则返回 -1。两者的区别在于前者从最前面开始查找,而后者从最后面开始查找。例如:

    var arr = ['red', 'green', 'blue', 'red', 'green', 'blue'];
    console.log(arr.indexOf('green'));  // 1
    console.log(arr.lastIndexOf('green')); // 4

    在 jQuery 中,$.inArray() 这个简单的函数模拟了 Array.prototype.indexOf 函数,对于旧的不支持 indexOf 的浏览器(例如 IE6-IE8),就需要补上这个功能。实现的代码模拟如下:

    $.inArray = function(value, array) {
      if (Array.prototype.indexOf) {
        return array.indexOf(value);
      } else {
        for (var i = 0; i < array.length; i++) {
          if (array[i] === value) return i;
        }
        return -1;
      }
    };
    

    Array.prototype.every 这个方法调用某个函数对数组的每个元素进行检查,如果每个元素都返回 true,则该方法返回 true,否则返回 false。特别地,如果数组为空,则总是返回 true。例子如下:

    var arr = ['red', 'green', 'blue', 'red', 'green', 'blue'];
    console.log(arr.every(function(value, index, array){return value.length > 2}));  // true
    console.log(arr.every(function(value, index, array){return value.length > 4}));  // false

    Array.prototype.some 这个方法调用某个函数对数组的每个元素进行检查,如果某个元素返回 true,则该方法返回 true,否则返回 false。特别地,如果数组为空,则总是返回 false。例子如下:

    var arr = ['red', 'green', 'blue', 'red', 'green', 'blue'];
    console.log(arr.some(function(value, index, array){return value.length > 2}));  // true
    console.log(arr.some(function(value, index, array){return value.length > 4}));  // true

    Array.prototype.forEach 这个方法调用某个函数对数组的每个元素进行某种操作。例子如下:

    var arr = [1, 3, 5, 0, -4, -7];
    arr.forEach(function(value, index, array){array[index] = - array[index]})
    console.log(arr) // [-1, -3, -5, 0, 4, 7]

    Array.prototype.filter 这个方法调用过滤函数对数组的所有元素进行筛选。只留下过滤函数返回 true 的所有元素。例子如下:

    var arr = [1, 3, 5, 0, -4, -7];
    arr = arr.filter(function(value, index, array){return value < 2})
    console.log(arr) // [1, 0, -4, -7]

    后面几个 Array 方法的介绍下次再补上。

    参考资料:
    [1] ECMAScript 5 compatibility table
    [2] ECMAScript 5 Arrays - Test Drive
    [3] ECMAScript 5: Array methods | Jimmy Cuadra
    [4] ECMAScript5 Array 新方法小结 - Andy Zhang
    [5] Array - JavaScript | MDN
    [6] jQuery.inArray() | jQuery API Documentation

  • 相关阅读:
    [转载]OpenGL函数参考(中文版)
    [转载]OpenGL 中常用的 GLUT 函数库
    VC6.0 VS2008 openGL环境配置 [和glut库的加入]
    java测试一个类的方法,用junit
    openal配置(更新)
    jsp URL 传参数 服务端接收后乱码的问题
    NeHe OpenGL 第二课 学习总结
    vs2008 添加头文件路径
    困惑之一:c++初始化成员列表
    C++中一些对原理描述相当好得语句
  • 原文地址:https://www.cnblogs.com/zoho/p/2874827.html
Copyright © 2020-2023  润新知