• 【js】数组方法集锦


    一、判断是否是数组

    1.方法1(ECMAScript 5 定义的新方法)

    var arr = [1,2,3,4,5];
    console.log(arr.isArray())

    2.方法2(自己定义方法)

    var isArray = function(x) {
        return x.constructor.toString().indexOf("Array") > -1;
    }
    var arr=[1,2,3,4,5];
    console.log(isArray (arr));

    3.方法3(利用instanceof 运算符)

    var arr = [1,2,3,4,5];
    console.log(arr instanceof Array );

    二、数组方法

    1.原数组不受影响

    toString() 把数组转换为数组值(逗号分隔)的字符串。

    join() 方法也可将所有数组元素结合为一个字符串。【它的行为类似 toString(),但是您还可以规定分隔符:】

    concat() 方法通过合并(连接)现有数组来创建一个新数组

    slice() 方法用数组的某个片段切出新数组。

    valueOf()返回数组对象的原始值。

    forEach() 方法为每个数组元素调用一次函数(回调函数)【所有浏览器都支持 Array.forEach(),除了 Internet Explorer 8 或更早的版本】

    reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。【所有浏览器都支持 Array.map(),除了 Internet Explorer 8 或更早的版本】

    map() 方法通过对每个数组元素执行函数来创建新数组。【所有浏览器都支持 Array.map(),除了 Internet Explorer 8 或更早的版本】

    filter() 方法过滤数组,返回一个新的数组。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本

    every() 方法检查所有数组值是否通过测试。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】

    some() 方法检查某些数组值是否通过了测试。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】

    indexOf() 方法在数组中搜索元素值并返回其位置。【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】

    lastIndexOf()与 Array.indexOf() 类似,但是从数组结尾开始搜索 【所有浏览器都支持 Array.filter(),除了 Internet Explorer 8 或更早的版本】

    find() 方法返回通过测试函数的第一个数组元素的值。(多个符合条件时只返回第一个值)【老旧的浏览器不支持 Array.find()。下面列出了完全支持此方法的首个浏览器版本

    findIndex() 方法返回通过测试函数的第一个数组元素的索引。【老旧的浏览器不支持 Array.find()。下面列出了完全支持此方法的首个浏览器版本

    2.原数组受影响

    pop() 方法从数组中删除最后一个元素:

    push() 方法(在数组结尾处)向数组添加一个新的元素

    shift() 方法会删除首个数组元素

    unshift() 方法(在开头)向数组添加新元素

    splice() 方法可用于向数组添加删除元素

    sort() 方法以字母顺序对数组进行排序

    reverse() 方法反转数组中的元素。

    三、数组迭代方法区别

    1、forEach:遍历开始以后无法停止,如果要遍历整个数组,那就使用这个方法;

    2、map:根据当前数组映射出一个新的数组;

    3、some:遍历整个数组,返回值true就停止循环(返回false继续循环)

    返回值:如果数组中的有一项回调函数返回true,那么结果为true,否则为false;(或者这样理解:数组别遍历完,那么结果为false,否则为true)

    4、every:与some相反,返回false就停止循环(返回true就继续循环)

    5、filter:过滤数组,返回一个新的数组

    6、reduce:实现数据的累加

  • 相关阅读:
    UVALive 4730 Kingdom +段树和支票托收
    zoj 3537 Cake (凸包确定+间隔dp)
    SVN在branch兼并和游戏patch(1)
    拍卖倒计时
    java基金会成立
    HDU1532 Drainage Ditches 【最大流量】
    leetcode-WordLadder
    Andriod Studio科普文章——3.大约gradle常见问题插头
    android Graphics(三):区域(Range)
    android Graphics(二):路径及文字
  • 原文地址:https://www.cnblogs.com/websmile/p/15801976.html
Copyright © 2020-2023  润新知