js中数组方法

js数组方法整理

今天给大家分享一些js数组方法,在做项目中我们会常常用到这些方法,有很多方法也不会经常用到,可能过段时间就会忘记,所以给大家整理出来一些方法,供大家方便查询。

1.concat()
功能:合并数组,可以合并一个数组或多个数组,会返回合并数组之后的数据,不会改变原来的数组。
eg:

        var arr=[1,2,3,'hi'];
        var arr1=['你好'];
        console.log(arr.concat(arr1));             // [1,2,3,'hi','你好']
        console.log(arr);                         //[1,2,3,'hi']

2.join()
功能:将数组转化为字符串并返回转化后字符串的数据,不会改变原来的数组。
注:()中用双引号包括自己想用的分隔符,默认为逗号,为了方便查看,这里我用-。
eg:

    var arr=[1,2,3,'hi'];
    var arr1=['你好'];
    console.log(arr.join(-));                  // 1-2-3-'hi'
    console.log(arr);                         //[1,2,3,'hi']

3.pop()
功能:删除数组的最后一位,并且返回删除的数据,会改变原来的数组。
eg:

    var arr=[1,2,3,'hi'];
    var arr1=['你好'];
    console.log(arr.pop());                    // hi
    console.log(arr);                         //[1,2,3]

4.shift()
功能:删除数组的第一位数据,并且返回新数组的长度,会改变原来的数组。
eg:

    var arr=[1,2,3,'hi'];
    var arr1=['你好'];
    console.log(arr.shift());                  // 1
    console.log(arr);                         //[2,3,'hi']

5.unshift()
功能:在数组的首位新增一个或多个数据,并且返回新数组的长度,会改变原来的数组。
注:unshift()方法返回的数据是新数组的长度,它增加的数据可以是一个也可以是多个。
eg:

    var arr=[1,2,3,'hi'];
    var arr1=['你好'];
    console.log(arr.unshift('word'));                  // 5
    console.log(arr1.unshift('marry'));               //  2
    console.log(arr);                                // ['word',1,2,3,'hi']
    console.log(arr1);                              // ['marry','你好']

6.push()
功能:在数组的最后一位新增一个或多个数据,并且返回新数组的长度,会改变原来的数组。
注:push()方法返回的数据是新数组的长度,它增加的数据可以是一个也可以是多个。
eg:

    var arr=[1,2,3,'hi'];
    var arr1=['你好'];
    console.log(arr.push('word'));                     // 5
    console.log(arr1.push('marry'));                  //  2
    console.log(arr);                                // [1,2,3,'hi','word']
    console.log(arr1);                              // ['你好','marry']

7.reverse()
功能:将数组的数据进行反转,并返回反转后的数组,会改变原数组。
eg:

    var arr=[1,2,3,'hi'];
    console.log(arr.reverse());                // ['hi',3,2,1]
    console.log(arr);                         // ['hi',3,2,1]

8.splice()
功能:向数组中添加或者从数组中删除,或者替换数组中的元素,然后返回被删除会替换的元素。
参数:splice(start,num,data1,data2,…).所有参数全部可选。
eg:

    var arr=[1,2,3,'hi'];
    console.log(arr.spilce(2,0,"a","b"));      // []
    console.log(arr);                         // [1,2,"a","b",3,"hi"]

9.toString()
功能: 将数组转换为字符串,类似于没有参数的join(),该方法会在数据发生隐式转换时会被调用,如果手动调用,直接转换为字符串,不会改变原数组。
eg:

    var arr=[1,2,3,'hi'];
    console.log(arr.spilce(2,0,"a","b"));      // 1,2,3,'hi'
    console.log(arr);                         // [1,2,3,"hi"]

10.valueOf()
功能: 返回数组的原始值(一般情况下就是数组本身),一般由js在后台调用,并不显示的出现在代码中。
eg:

    var arr=[1,2,3,'hi'];
    console.log(arr.valueOf());                // [1,2,3,'hi']
    console.log(arr);                         // [1,2,3,"hi"]
    console.log(arr.valueOf()==arr);         // true

11.indexOf()
功能:根据指定的数据,从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据,返回该数据的索引。
参数:indexOf(value,start),value为要查询的数据,start为可选,表示开始查询的位置,当start为负数时,从数据的尾部向前数,如果查询不到value的存在,则方法返回-1。
注:如果找到该数据,直接返回该数据的索引,不在往后继续查找
eg:

	 var str = ["h","e","l","l","o"];
	 console.log(str.indexOf("l"));        //2
	 console.log(str.indexOf("l",3));      //3
	 console.log(str.indexOf("l",4));      //-1
	 console.log(str.indexOf("l",-1));     //-1
	 console.log(str.indexOf("l",-3));     //2

12.forEach()
功能:es5新增的方法,用来遍历数组,没有返回值。
参数:forEach(callback);callback默认有三个参数,分别为value(遍历到的数组的数据),index(对应的索引),self(数组本身)
eg:

var arr = ["Tom","Jack","Lucy","Lily","May"];
var a = arr.forEach(function(value,index,self){
     console.log(value + "--" + index + "--" + (arr === self));
})
// 打印结果为:
// Tom--0--true
// Jack--1--true
// Lucy--2--true
// Lily--3--true
// May--4--true
console.log(a);     //undefined---forEach没有返回值
//该方法为遍历方法,不会修改原数组

13.map()
功能:1.同forEach功能;
2.map的回调函数会将执行结果返回,最后map将回调函数的返回值组成新数组返回。
参数map(callback);callback默认有三个参数:分别为value,index,self
eg:

//功能1:同forEach
    var arr = ["Tom","Jack","Lucy","Lily","May"];
    var a = arr.map(function(value,index,self){
        console.log(value + "--" + index + "--" + (arr === self))
    })
    // 打印结果为:
    // Tom--0--true
    // Jack--1--true
    // Lucy--2--true
    // Lily--3--true
    // May--4--true

    //功能2:每次回调函数的返回值被map组成新数组返回
    var arr = ["Tom","Jack","Lucy","Lily","May"];
    var a = arr.map(function(value,index,self){
        return "hi:"+value;
    })
    console.log(a);     //["hi:Tom", "hi:Jack", "hi:Lucy", "hi:Lily", "hi:May"]
    console.log(arr);   //["Tom", "Jack", "Lucy", "Lily", "May"]---原数组未改变

14.filter()
功能: 1.同forEach功能
2.filter的回调函数需要返回布尔值,当为true时,将本次数组的数据返回给filter,最后filter将所有回调函数的返回值组成新数组返回(可以理解为过滤)。
参数:filter(callback),callback参数分别为value,index,self
eg:

//功能1:同forEach
    var arr = ["Tom","Jack","Lucy","Lily","May"];
    var a = arr.filter(function(value,index,self){
        console.log(value + "--" + index + "--" + (arr === self))
    })
    // 打印结果为:
    // Tom--0--true
    // Jack--1--true
    // Lucy--2--true
    // Lily--3--true
    // May--4--true

    //功能2:当回调函数的返回值为true时,本次的数组值返回给filter,被filter组成新数组返回
    var arr = ["Tom","Jack","Lucy","Lily","May"];
    var a = arr.filter(function(value,index,self){
        return value.length > 3;
    })
    console.log(a);         //["Jack", "Lucy", "Lily"]
    console.log(arr);       //["Tom", "Jack", "Lucy", "Lily", "May"]---原数组未改变
上一篇:Hi3559AV100 NNIE开发(2)-RFCN(.wk)LoadModel及NNIE Init函数运行过程分析


下一篇:(转)js函数前加分号和感叹号是什么意思?有什么用?