当前位置 博文首页 > 纸飞机博客:Array类型

    纸飞机博客:Array类型

    作者:[db:作者] 时间:2021-08-16 16:02

    创建Array

    var arr1 = new Array();
    var arr2 = new Array('a');
    var arr3 = [];
    var arr4 = ['a','b','c'];

    操作与检测

    var arr = ['a','b','c'];
    console.log(arr[0]);//a
    console.log(arr.length);//3
    if(Array.isArray(arr)){
        console.log('array类型')//array类型
    }

    除了Array.isArray()以外,instanceof和Object.prototype.toString.call()也可以检测

    常用方法

    join()? ?[原数组不改变]

    join(separator):将数组元素组成一个字符串返回,以separator为分隔符。无参数则默认用'逗号'为分隔符。

    var a = ['a','b','c'];
    var b = a.join('1');
    console.log(b); //'a1b1c
    console.log(a); //['a','b','c']
    

    push()? ?[原数相发生改变]

    接收任意数量的参数,把它们逐个添加到数组末尾。返回添加后的新的数组长度。

    var a = ['a','b','c'];
    var b = a.push('d','e');
    console.log(b); //5
    console.log(a); //['a','b','c','d','e']
    

    pop()? [原数模发生改变]

    数组未尾移除最后一項,减少数组的length值。返回尾部被删除的元素。

    var a = ['a','b','c'];
    var b = a.pop();
    console.log(b);//'c'
    console.log(a);//['a','b']
    

    unshift()? [原数组发生改变]

    将一个或多个元素添加到原数组开头。返回添加后的新的数组长度。

    var a = ['a','b','c'];
    var b = a.unshift('1','2');
    console.log(b);//5
    console.log(a);//['1','2','a','b','c']
    

    shift()? [原数组发生改变]

    返回原数组第一项。返回被删除的元素,如果删除为空则返回undefined。

    var a = ['a','b','c'];
    var b = a.shift();
    console.log(b); //'a'
    console.log(a)//['b','c']
    

    sort()? [原数组发生改变]

    接收一个比较函数作为参数,用于对数组的元索进行排序。返回排序后的该数组。如果无参数将按照ASCII字符顾序进行排序。比较函数function(a,b)(return b-a)。a-b从小到大排序,b-a从大到小排序。

    var a = [1,2,3);
    var b = a.sort(function(a,b){retun b-a});
    console.log(b); ///3,2,11
    console.log(a); //3,2,1]
    

    reverse()? [原数组发生改变]

    将数组中元素的位置颠倒,并返回该数组。

    var a = ['a','b','c'];
    yar b = a.reverse();
    console.log(b);//['c','b','a']
    console.log(a); //['c','b','a']
    

    concat()? [原数組不改变]

    连接两个或多个数组,会先创建当前数组的一个副本,然后将参数加到副本的末尾,返回这个新构建的数组。无参数时只是复制当的数组并返回副本。

    var a = ['a','b','c'];
    var b = ['d','e','f'];
    var c = a.concat(b);
    console.log(c);//['a','b','c','d','e']
    console.log(a);//['a','b','c']
    

    slice() [原数组不改变]

    返回从原数组中指定开始下标到结束下标之间的项(不包括结束位置的项)细成的新数组。在只有一个参数的情况下,返四从该参数指定位置开始到当前数组末尾的所有项。

    var a = ['a','b','c','d'];
    var b = a.slice(1,2);
    console.log(b);//['b']
    console.log(a); //['a','b','c']
    

    splice()? [原数组发生改变]

    删除、插入数组。

    参数1:删除项目的位置(正数从0开始,负数从-1开始。

    参数2:要删除的项目数量。

    参数3-n;向数组添加的新项。

    返回被删除的元素组成的数组,如果没有删除项,则返回空数组[]。

    var a = ['a','b','c','d'];
    var b = a.splice(0,2,'e');
    console.log(b)//['a','b']
    console.log(a)//['e','c','d']
    

    indexOf()/lastIndexOf()? [原数组不改变]

    从数组的开头/末尾开始查找。返国第一个匹配到的元索的位置索引,找不到就返回-1。

    var a = ['a','b','c','d'];
    var b = a.indexOf('c');
    console.log(b)//2
    consolelog(a) //['a','b','c','d']
    
    

    forEach()? [原数场是否改变依具体情况]

    对数组进行遍历,对数组中的每一项运行给定函数。函数有三个参数:数组元素元素索引数组本身

    var a = [1,2,3,4,5];
    var sum = 0;
    a.forEach((value,index,arr)=> {
      sum += value;
    })
    console.log(sum); //15
    console.log(a); //[1,2,3,4,5]
    
    //-----------------------------
    
    var k = [1,2,3,4,5]
    k.forEach((value, index, arr)=> {
     arr[index] = value + 2;
    })
    console.log(k); //[3,4,5,6,7]
    
    //-----------------------------
    
    var m = [
      {a:1,b:2},
      {a:3,b:4}
    ]
    m.forEach(value => {value.a = 6});
    console.log(m);//[{a:6,b:2},{a:6,b:4}]
    
    //-----------------------------
    
    var p = [
      {a:1,b:2},
      {a:3,b:4}
    ]
    p.forEach(value => {value = 6});//形参被重新赋值
    console.log(p);//[{a:1,b:2},{a:3,b:4}]

    map()? ?[原数值不改变]

    对数组中的每一项运行给定函数,返回每次函数调用的结果组成的新数组。

    var arr = [1,2,3,4,5];
    var new_arr = arr.map((value) => {return value * value});
    console.log(new_arr);//[1,4,9,16,25]
    console.log(arr);//[1,2,3,4,5]
    

    filter()? ?[原数组不改变]

    数组中的每一项运行给定函数,返回满足过滤条件的项组成的新数组。

    var arr = [3, 12, 7, 1,9, 3, 18];
    var new_arr = arr.filter((value)=>{return value < 5});
    console.log(new_arr);//[3,1,3]
    console.log(arr);//[3,12,7,1,9,3,18]

    reduce()? [原数组不改变]

    调用指定的回调函数将数组元素从左到右进行累计计算,并返回组合后的单个值。该回调函数有两个参数pre,cur表示数组的元素成员。

    var arr = [1,2,3,4,5];
    var b = arr.reduce((pre,cur)=>{
        return pre + cur;
    })
    console.log(b);//15
    console.log(arr); //[1,2,3,4,5]

    cs
    下一篇:没有了