• javaScript——Array类型


    1、检测数组——确定某个对象是不是数组

    /**
    *instanceof操作符
    *假定只有一个全局执行环境
    */
    if(value instanceof Array){
      //执行某些操作  
    }
    /**
    * Array.isArray()方法
    *最终确定值是不是数组,不管是哪个全局环境创造的
    */
    
    if(Array.isArray(value)){
      //执行某些操作  
    }

    2、转换方法

    valueOf:返回 Array 对象的原始值。

    toString():返回由数组中每个值以逗号分隔的字符串

    toLocalString():返回由数组中每个值以逗号分隔的字符串

    三者区别

    3、插入与移除方法

    push():接收任意数量的参数,逐个添加到数组末尾,并返回修改后的数组

    pop()  :从数组末尾移除最后一项,返回移除的项

    unshift():在数组前端添加任意个项,并返回数组的长度

    shift():移除数组的第一项,并返回该项

    4、重排序方法

    resever():反转数组的顺序

    sort():按升序排列数组,即最小的在前面,最大的在后面。sort()方法先调用toString(),然后比较得到的字符串,即使是数字也会被转为字符串比较,所以下面的5会在10的后面

    var arr = [0,1,5,10,15];
    sort(arr);
    console.log(arr);//0,1,10,15,5

    用函数简单处理后继续比较数字得到想要的结果

    var arr = [1,0,5,15,10];
    function compare(val1,val2){
       //升序排列,即从小到大
       return val1 - val2;
       //降序排列,即从大到小
       //return val2 - val1;
    }
    arr.sort(compare);
    console.log(arr);//0,1,5,10,15

    5、操作方法

    concat():这个方法会先创建一个数组副本,然后把接收到的参数添加到这个副本的末尾,最后返回新构建的数组

    slice():基于当前数组的一或多个项创建一个新的数组。slice()接收一或两个参数。

    var arr = [1,2,3,4,5];
    //slice()只有一个参数时,返回从该参数指定位置开始到当前数组末尾的所有项
    slice(1);//2,3,4,5
    
    //slice()有两个参数时,返回第一个参数开始,到第二个参数结束之间的所有项,不包括结束位置的项
    slice(1,4);//2,3,4
    
    //slice()参数有负数时,用数组的长度加上该参数来确定当前的位置。如果结束位置小于起始位置,则返回空数组。
    slice(-2,-1);//4

    splice():主要用途是向数组中插入项,使用的方式有3种

    var colors = ['red','green','blue'];
    
    //删除:可以删除任意数量的项,只需指定2个参数:要删除的第一项的位置和要删除的项数,返回删除的项
    splice(0,1);//red
    console.log(colors);//green,blue
    
    //插入:可以向指定位置插入任意数量的项,只需指定3个参数:起始位置、0(要删除的项数)、要插入的项,返回删除的项
    splice(1,0,'yellow');//返回空数组
    console.log(colors);//green,yellow,blue
    
    //替换:可以向指定位置插入人员数量的项,在删除相同数量的项,用法同插入相同,返回删除的项
    splice(1,1,'orange');//yellow
    console.log(colors);//green,orange,blue

    6、位置方法

    indexOf()、lastIndexOf():都接收2个参数:要查找的项、表示查找的起始位置(可选),返回位置的值,如果没找到,返回-1。要求查找的项必须严格相等(===)

    var numbers = [1,2,3,4,5,6];
    
    //indexOf()方法从数组的开头开始查找
    console.log(numbers.indexOf(4));  //3
    
    //lastIndexOf()方法从数组的末尾开始查找
    console.log(numbers.lastIndexOf(4));  //5

    7、迭代方法

    5个迭代方法,每个方法都接收2个参数:要在每一项上运行的函数和影响该函数的作用域对象——影响this的值。函数会接收3个参数:数组项的值(item)、该项在数组中的位置(index)、数组本身(array)。

    every():对数组的每一项运行给定函数,如果函数的每一项都返回true,则返回true

    filter():对数组的每一项运行给定函数,返回改函数会返回true的项组成的数组

    forEach():对数组的每一项运行给定函数,无返回值

    map():对数组的每一项运行给定函数,返回每次函数调用的结果组成的数组

    some():对数组的每一项运行给定函数,如果该函数对任一项返回true,则返回true

    var numbers = [1,2,3,4,5,6];
    
    //every()
    var everyResult = numbers.every(function(item,index,array){
       return (item>2); 
    });
    console.log(everyResult);//false
    
    //filter()
    var filterResult = numbers.filter(function(item,index,array){
       return (item>2); 
    });
    console.log(filterResult);//[3,4,5,6]
    
    //forEach()
    numbers.forEach(function(item,index,array){
        //执行某些操作
    });
    
    //map()
    var mapResult = numbers.map(function(item,index,array){
       return  item*2; 
    });
    console.log(mapResult);//[2,4,6,8,10,12]
    
    //some()
    var someResult = numbers.some(function(item,index,array){
       return (item>2); 
    });
    console.log(someResult);//true

    8、归并方法

    reduce()、reduceRight()

    这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。

    都接收2个参数:一个在每一项上都调用的函数、作为归并基础的初始值。

    函数接收4个参数:前一个值(prev)、当前的值(cur)、项的索引(index)、数组对象(array)。

    这个函数返回的任何值都会作为第一个参数传给下一项。即开始迭代发生在第二项上,第一个参数就是第一项(prev),第二个参数就是第二项(cur)

    var values = [1,2,3,4]
    
    //reduce():数组的开头开始遍历
    var sum = values.reduce(function(prev,cur,index,array){
       return prev+cur;
    });
    console.log(sum);//10——第一次prev=1,cur=2;第二次prev=3,cur=3以此类推
    
    //reduceRight():数组的末尾开始遍历
    var sum = values.reduceRight(function(prev,cur,index,array){
       return prev+cur;
    });
    console.log(sum);//10——第一次prev=4,cur=3;第二次prev=7,cur=2以此类推
  • 相关阅读:
    【转】请收下这72个炫酷的CSS技巧
    【转】css套路学习(一)
    【转】用最短的CSS样式,勾勒大数据演示屏
    【转】CSS 实现按钮点击动效的套路
    Docker Redis分布式存储
    Dockerfile的使用以及docker部署java项目
    centos7安装Docker详细步骤(无坑版教程)
    mysql三种备份方式
    CentOS7升级OpenSSL版本 前置机Linux安装Nginx
    go的nil值/零值/空值
  • 原文地址:https://www.cnblogs.com/hess/p/9354467.html
Copyright © 2020-2023  润新知