zoukankan      html  css  js  c++  java
  • js数组方法总结

    传统的js数组方法

    concat(),push(),pop(),shift(),unshift(),splice(),slice(),join(),sort(),reverse();

    ES5新增数组方法:

    indexOf(),lastIndexOf(),map(),filter(),forEach(),some(),every(),reduce(),reduceRight();

    1,concat() 用于连接两个数组,返回新构建的数组

    var arr = [2,3,5];
    var newarr = arr.concat([5,3,8]);
    console.log(newarr)//[2,3,5,5,3,8]
    

      

    var arr = [2,3,5];
    var newarr = arr.concat(5,[3,8]);
    console.log(newarr)//[2,3,5,5,3,8]
    

      

    var arr = [2,3,5];
    var newarr = arr.concat([5,[3,8]]);
    console.log(newarr)//[2,3,5,5,[3,8]]
    

      看到上面的区别了吗?

      如果concat的不是一个数组,元素则直接添加到原数组末尾,数组则把每一项分别添加到原数组末尾;

      如果concat的是个二维数组,则把数组中的每一项添加到原数组末尾,二维数组中数组整体添加到原数组末尾;

    应用,实现降维数组

    例:

    var arr = [[1,2],[2,3]];
    
    var newarr = Array.prototype.concat.apply([], arr);
    
    console.log(newarr)//[1,2,2,3]
    

      2,push()和pop();

    push()是把元素添加到数组末尾,并返回新数组的长度;pop()是把数组中最后一项删除,并返回删除的项;

    3,shift()和unshift();

    unshift()是把元素添加到数组开头位置,并返回新数组的长度;shift()是把数组中第一项删除,并返回删除的项;

    4,splice();

    splice()的作用很多,可以删除,添加,替换数组的某些项;

    splice()接收很多参数,第一个参数代表起始位置,第二个参数代表删除的个数,第三个参数开始代表插入的数据;返回被删除的项;

    var arr = [1,3,3,5];
    var newarr = arr.splice(2,0,6,7,8);
    console.log(arr) //[1,3,6,7,8,3,5]
    console.log(newarr)//[]
    

      5,slice();

    slice()可以接收2个参数,分别代表起始位置和结束位置,返回起始位置到结束位置直接的数据,但不包括结束位置的数据;

    如果只有一个参数,代表起始位置,返回从起始位置到末尾的数据;

    如果参数是负数,代表从末尾开始计算,-1代表最后一个位置;

    6,join();

    数组转换为字符串的方法;

    7,sort();

    数组排序,默认按升序排列;返回排序后的数组;

    sort()默认会将数组中的每一项转换为字符串再排序

    所以会出现下列情况

    var arr = [13,2,1,15,3]
    var newarr = arr.sort();
    console.log(newarr);//[1,13,15,2,3]
    

      所以需要比较函数,sort可以传递一个函数参数,这个函数就是比较函数;

    比较函数接收两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回 0,如果第一个参数应该位于第二个之后则返回一个正数。

    arr.sort(function(a, b){
        if(a<b){
            return -1;
        }else if(a>b){
            return 1;
        }else {
            return 0;
        }
        
    })
    

      8,reverse();

    反转数组项的顺序

    9,forEach();

    循环数组的每一项,

    10,map();

    映射数组的每一项,返回处理后的数组

    11,filter();

    返回满足过滤条件的数组

    12,some();

    判断数组中的项是否满足条件,只要有一项满足就返回ture;

    13,every();

    判断数组中的项是否满足条件,只有全部项都满足才返回ture;

    14,indexOf()和lastIndexOf();

    接收两个参数,要查找的项和从哪个位置开始查找(可有可无);返回元素在数组中的位置,没有找到返回-1;

    15,reduce()和reduceRight();

    迭代数组所有项

  • 相关阅读:
    web中缓存的使用
    .net1.1 Read Byte Array From File
    数据库连接的多种方式(二)
    存储过程和SQL语句比较及存储过程在C#中调用方法(转)
    exec与sp_executesql语法的区别详解(转)
    SQL Server存储过程入门案例详解
    asp.net结合aspnetpager用sql语句分页
    数据库连接的多种方式(一)
    分页存储过程1
    asp.net结合aspnetpager使用SQL2005的存储过程分页(转)
  • 原文地址:https://www.cnblogs.com/zhangbs/p/9780340.html
Copyright © 2011-2022 走看看