• 数组


    一、检测数组

    检测数组有两个方法:instanceof操作符与isArray()方法。返回的都是一个布尔值。

    var arr=[1,2,2];
    console.log(arr instanceof Array);  //true
    console.log(Array.isArray(arr));  //true

    二、转换

    toSring():转换出来的是以逗号进行分割的字符串。

    jion():需要接受一个字符参数,作为分割的分隔符。如果没有这个参数,返回的就跟toString是一样的。

    let arr = [1,2,3]
    let arrStr = arr.toString();
    let arrString = arr.join('*')
    console.log(arrStr) // 1,2,3
    console.log( arrString) // 1*2*3

    三、栈方法

    栈的特点是:先进后出,后进先出

    push():接受任意数量的参数,将他们添加到数组的末尾,返回的是新数组的长度

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

    let arr = [1,2,3]
    let arrLen = arr.push('a');
    console.log(arr) //1,2,3,a
    console.log(arrLen) //4
    let item= arr.pop();
    console.log(item) //a

      

    四、队列方法

    队的特点是:先进先出,后进后出,就像排队一样

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

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

    let arr = [1,2,3]
    let item = arr.shift();
    console.log(item) //1
    let arrLen = arr.unshift('a','b')
    console.log(arrLen)//4

      

    五、重排序方法

    reverse():翻转数组,并返回新的数组

    sort():接受一个function参数,该方法返回的是正数与负数,如果没有,就从小到大,sort方法比较的是字符串,所以1,和10,要比5在前面

    let arr = [1,2,3]
    let arr1 = arr.reverse();
    console.log(arr)  //[3, 2, 1]
    console.log(arr1) //[3, 2, 1]

     由于sort()函数没有接受参数,就会按照升序排序。但是这种升序,是先将内容转化为字符串,然后再排序。因此,虽然10大于5,但是由于字符串的10在5前面,所以排序结果并不理想。

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

     如果想要升序功能,就要给sort()一个函数作为参数,进行处理。

    var arr = [0,1,5,10,7]
    arr.sort(compare)
    console.log(arr) //[0, 1, 5, 7, 10]
    
    //升序操作
    function compare(value1, value2){
        if (value1 > value2){
            return 1
        } else if (value1 < value2){
            return -1
        } else {
            return 0
        }
    }

    六、操作方法

    concat():连接数组。不会影响原数组。

    slice():截取数组。当slice只接受一个参数的时候,方法返回从该参数指定位置开始,到当前数组末尾的所有项。当slice接受两个参数是,参数分别代表返回项的起始位置和结束位置。但是slice方法并不会影响原数组。

    splice():数组最强大的方法。主要用法是向数组的中部删除、插入、替换项。会影响原来的数组。

    这两个方法,返回的都是数组!开始项都是从0开始。

    -

    concat()方法:

    let arr1 = [1,2,3]
    let arr2 = ['red', 'blue']
    let arr = arr1.concat(arr2)
    console.log(arr) //[1, 2, 3, "red", "blue"]

    slice()方法:

    let arr = [1,2,3,4,5,6,7]
    let arr1 = arr.slice(2); 
    console.log(arr1) //[3,4,5,6,7]
    let arr2= arr.slice(2,5)
    console.log(arr2) //[3,4,5]

    splice()方法:

    删除:两个参数,分别表示要删除的第一项的位置和要删除的项数。最后返回 被删除的项 的数组。

    let arr = [1,2,3,4,5,6,7]
    let item = arr.splice(2,3)
    console.log(arr) //[1,2,6,7]
    console.log(item) //[3,4,5]

     插入:三个参数:起始位置,要删除的项数(没有为0),要插入的项。如果要插入多个项,可再传入任意项。

    let arr = [1,2,3,4]
    let arr1 = arr.splice(3,0,'red','blue')
    console.log(arr) //[1, 2, 3, "red", "blue", 4]
    console.log(arr1) //[]

    替换:三个参数:起始位置,要删除的项数,被插入的任意数量的项。插入的项数不必跟删除的项数相等。

    let arr = [1,2,3,4,5,6,7]
    let arr1 = arr.splice(2,5,'yellow','blue')
    console.log(arr) //[1, 2, "yellow", "blue"]
    console.log(arr1) //[3, 4, 5, 6, 7]

    七、位置方法

    indexOf()和lastIndexOf()均接受2个参数,要查找的项(可选)和查找的起点。没有找到返回-1,找到了返回该项所在的位置。

    indexOf():从数组的头部开始向后查找。

    lastIndexOf():从数组的末尾开始向前查找。

    虽然两种方法开始查找的顺序不同,但是返回的都是某一项的index,所以最后结果都是相同的。

    let arr = ['yellow','red','blue','pink']
    let startIndex = arr.indexOf('blue');
    let endIndex = arr.indexOf('blue')
    console.log(startIndex, endIndex) //2 2

    八、迭代方法

    数组的每个迭代方法都接受两个参数:函数(可选)和作用域对象。

    every():返回的是布尔值。对数组的每一项运行给定函数,该函数对每一项都返回true,才为true。

    some():返回的是布尔值。对数组的每一项运行给定函数,该函数对任一项返回true,则为true。

    filter():返回的是一个数组。对函数的每一项运行给定函数,返回该函数都是ture的项组成的数组。

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

    forEach():没有返回值,只是对数组进行操作。本质与for循环一样。

    let arr = [1,2,3,4,5]
    let res1 = arr.every((item,index)=>{
        return item > 3
    })
    let res2 = arr.some((item,index)=>{
        return item > 3
    })
    console.log(res1, res2) //false true

    -

    let arr = [1,2,3,4,5]
    
    let res1 = arr.filter((item,index)=>{
        return item > 2
    })
    console.log('res1-->>', res1) //[3,4,5]
    let res2 = arr.map((item,index)=>{
        return item * 2
    })
    console.log('res2-->>',res2) //[2, 4, 6, 8, 10]

    -

    let arr = [1,2,3,4,5]
    
    arr.forEach((item,index)=>{
         console.log( item * 2)    
    })
     //2 4 6 8 10

    九、归并方法

    reduce():

    reduceRight():

  • 相关阅读:
    Global.asax的Application_BeginRequest实现url重写无后缀的代码
    Windows 2008驱动安装失败的原因及解决方法
    解决win8.1电脑无法安装手机驱动问题
    适用于Win8的Office2003_SP3精简版集成各类补丁+兼容包
    CSS 文本缩进,行间距
    自动换行后缩进怎么做(CSS)?(可用于 Li y 元素的排版)
    ApkTool反编译和重新打包
    sql server 2005 32位+64位、企业版+标准版、CD+DVD 下载地址大全
    【Lua】Lua中__index与元表(转)
    【VS2012】项目文件夹管理
  • 原文地址:https://www.cnblogs.com/qingshanyici/p/10868028.html
Copyright © 2020-2023  润新知