美文网首页工作生活
你不知道数组的一些基本操作?。

你不知道数组的一些基本操作?。

作者: 别闹23 | 来源:发表于2019-07-03 23:42 被阅读0次

    ·concat()方法可以基于当前数组创建一个新数组。

    例子:
    var arr=[1,2,3,4]
    var arr1=[5,6]
    arr3=(arr.concat(arr1));//表示将数组arr和数组arr1进行拼接,成了新的数组arr3,连接多个时用逗号隔开。
    console.log(arr3);  
    

    · slice()方法可以基于当前数组获取指定区域元素并创建一个新数组。
    slice()
    方法可提取字符串或者数组的某个部分,并以新的字符串或数组返回被提取的部分。

    *.slice(start,end)

            例:
            var arr = [1,2,3,4,5,6];
            var ele1 = arr.slice(1,4);//表示从下标1-4的位置提取出数组[2,3,4],该方法不改变原数组。
            console.log(ele1);
    
    slice.png

    splice

    var arr = ["red","green","blue"];   //当前数组 
    var arr1 = arr.splice(0,2); //表示截取下标0-2的元素
    console.log(arr1);      //表示返回截取的元素,打印出来为['red','green']
    console.log(arr);          //表示返回的原数组为['blue']   **表明改变原数组**
    
    splice.png

    ·splice中的插入功能:返回空数组

        var arr = ["red","green","blue"];       //当前数组
        var arr1 = arr.splice(1,0,"aqua","black");//表示从下标是1第0个地方截取(也就是没有截取),然后在插入俩个数组。
       console.log(arr1);       //""
       console.log(arr);         //表示改变原数组。
    
    splice插入数组.png

    ·splice中的替换功能:返回被替换数组元素

     var arr = ["red","green","blue"];      //当前数组
     var arr1 = arr.splice(1,1,"aqua");    //截取了第2条,替换成"aqua"
     console.log(arr1);         //表示截取的"green"
     console.log(arr);      //替换出来的新数组是["red", "aqua", "blue"]**改变原数组**
    
    splice替换.png

    位置方法
    1首次出现的位置
    ·indexOf():返回某个指定的字符串值或者某个数组元素值在字符串或者数组中首次出现的位置

    例子:
    var arr=[1,5,3,4,5,3,5];
    console.log(arr.indexOf(5,3));//表示从第3个下标开始找5
    
    indexof首次下标.png
    *可以是数组,也可以是字符串
    indexOf(找谁,从哪里开始找)

    2最后出现位置
    ·lastIndexOf():返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索

    var arr=[1,5,3,4,5,3,5];
    console.log(arr.lastIndexOf(5,3));//表示从后往前找,找5的位置
    
    末次出现的位置.png
    • 迭代方法
      .every()
      只返回真(true)或假(flase),数组的每一项都返回ture,即返回真(true)

      例子:
      var arr = [4,5,6,7,8] 
      var eve=arr.every(function(item,index,array){
        return (item>2)
      })
      console.log(eve);//ture(每一个项目都大于2,条件为真所以返回值是2)
      
    every.png

    ·some()
    只要数组里有一项符合就返回ture

    例子
    var arr = [4,5,6,7,8] 
    var eve=arr.every(function(item,index,array){
        return (item>7)
      })
    console.log(eve);//ture(表示数组里面有一个项目大于7,就返回ture)
    

    .every()和.some的区别:
    共同点:
    1.遍历数组
    2.三个参数分别是item/index/array(数组具体项/位置也可叫做下标/数字本身)
    3.返回的值都是布尔值(返回的值只有真或者假)
    4.不会对空数组尽享检测
    5.不会改变原数组
    不同点:
    1.every()遍历数组的每一项,全部为ture,则返回ture
    2.some()遍历数组的每一项,有一项为ture,则返回ture**

    ·filter() 【适用于筛选】
    对数组的每一项运行给定函数,返回该函数会返回true的项组成的数组。

    例子:
    var arr = [4,5,6,7,8] 
    var eve=arr.filter(function(item,index,array){
        return (item>6)//不可以进行运算
    })
    console.log(eve);//ture  表示结果为ture,返回符合的项目并且成立新的数组。
    

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

    例子:
    var arr = [4,5,6,7,8] 
    var eve=arr.map(function(item,index,array){
        return (item*2)//可以进行运算
    })
    console.log(eve);//对数组里的每一项进行运算,返回值成立新的数组
    
    map.png

    .filter() .map()都不改变原数组,

    ·forEach()
    对数组的每一项运行给定函数。该方法没有返回值。

    例子:
    var arr = [4,5,6,7,8] 
    var eve=arr.forEach(function(item,index,array){
        console.log(eve);//underfined
    })
    

    forEach没有返回值。 即便你给forEach加上return也没用,强制输出的话输出值为underfined

    • 归并方法
      ·reduce() 是从数组的第一项开始,逐个遍历到最后。
      ·reduceRight() 是从数组的最后一项开始,逐个遍历到最前。
      这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。
      这两个方法都接收两个参数:1)要在每一项上运行的函数 2)作为归并基础的初始值(可选)。
      传给这两个方法的函数接收4个参数:1)前一个值 2)当前值 3)项的索引 4)数组对象
    例子:
    var  arr=[1,2,3,4,5];
    var sum=arr.reduce(function(prev,cur,index,array){
        return prev+cur;//1+2=3+3=6+4=10+5=15
    })
    console.log(sum);//15
    
    reduce.png

    相关文章

      网友评论

        本文标题:你不知道数组的一些基本操作?。

        本文链接:https://www.haomeiwen.com/subject/wgiqhctx.html