js数组方法大全

数组具有较多的方法,接下来总结一些常用的方法。

目录

一、方法总结 

二、方法介绍 

1、push()

2、 unshift()

3、 pop()

4、 shift()

5、 reverse()

6、 sort()

7、 indexOf()

8、lastIndexOf() 

9、 toString()

10、join() 

11、 valueOf()

12、 splice()

13、slice() 

 14、concat() 

15、 forEach()

16、 map()

17、filter() 

18、every() 

19、 some()

20、reduce() 

21、reduceRight() 

22、find()

23、findIndex() 

24、Array.from() 

25、includes 


一、方法总结 

方法名对应版本功能原数组是否改变
push()ES5在最后一位新增一或多个数据,返回长度
unshift()ES5在第一位新增一或多个数据,返回长度
pop()ES5删除最后一位,并返回删除的数据
shift()ES5删除第一位,并返回删除的数据
reverse()ES5反转数组,返回结果。(ES6的替代toReversed()不会改变原数组,而是返回原数组操作后的拷贝)
sort()ES5排序(字符规则),返回结果。(ES6的替代toSorted()不会改变原数组,而是返回原数组操作后的拷贝)
indexOf()ES5查询并返回数据的索引
lastIndexOf()ES5反向查询并返回数据的索引
toString()ES5直接转为字符串,并返回
join()ES5使用分隔符,将数组转为字符串并返回
valueOf()ES5返回数组对象的原始值
splice()ES5删除指定位置,并替换,返回删除的数据。(ES6的替代toSpliced()不会改变原数组,而是返回原数组操作后的拷贝)
slice()ES5截取指定位置的数组,并返回
concat()ES5合并数组,并返回合并之后的数据
forEach()ES5参数为回调函数,会遍历数组所有的项,回调函数接受三个参数,分别为value,index,self;forEach没有返回值
map()ES5同forEach,同时回调函数返回数据,组成新数组由map返回
filter()ES5同forEach,同时回调函数返回布尔值,为true的数据组成新数组由filter返回
every()ES5同forEach,同时回调函数返回布尔值,全部为true,由every返回true
some()ES5同forEach,同时回调函数返回布尔值,只要由一个为true,由some返回true
reduce()ES5归并,同forEach,迭代数组的所有项,并构建一个最终值,由reduce返回
reduceRight()ES5反向归并,同forEach,迭代数组的所有项,并构建一个最终值,由reduceRight返回 
find()ES6回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
findIndex()ES6返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回-1。
Array.from()ES6数组对象静态方法,将可遍历对象以及类似数组的对象转为真数组
includes()ES6返回一个布尔值,表示某个数组是否包含给定的值

二、方法介绍 

1、push()

作用:向数组的末尾添加一个或更多元素
参数:push(newData1, newData2, ......)

返回值:新数组的长度

原数组为添加元素后的新数组

    var arr = [1,2,3];
    console.log(arr.push("hello"));  //4
    console.log(arr);                //[1,2,3,"hello"]---原数组改变

2、 unshift()

作用:向数组的开头添加一个或更多元素
参数:unshift(newData1, newData2, ......)

返回值:新数组的长度

原数组为添加元素后的新数组

    var arr = [1,2,3];
    console.log(arr.unshift("hello"));  //4
    console.log(arr);                   //["hello",1,2,3]---原数组改变

3、 pop()

作用:删除数组的最后一个元素
参数:

返回值:删除的元素

原数组为删除元素后的新数组

    var arr = [1,2,3];
    console.log(arr.pop());     //3
    console.log(arr);           //[1,2]---原数组改变

4、 shift()

作用:删除数组的第一个元素
参数:无 

返回值:删除的元素

原数组为删除元素后的新数组

    var arr = [1,2,3]
    console.log(arr.shift());       //1
    console.log(arr);               //[2,3]---原数组改变

5、 reverse()

作用:翻转数组
参数:无 

返回值:翻转后的数组

原数组为翻转后的数组

    var arr = [1,2,3];
    console.log(arr.reverse());     //[3,2,1]
    console.log(arr);               //[3,2,1]---原数组改变

6、 sort()

作用:对数组中的元素进行排序,默认是升序。 

返回值:排序后的数组

原数组为元素隐式转换后的新数组

    var arr = [6,1,5,2,3];
    console.log(arr.sort());    //[1, 2, 3, 5, 6]
    console.log(arr);           //[1, 2, 3, 5, 6]---原数组改变

但是不按照数组元素数值的大小对数字进行排序,而是按照字符编码的顺序进行排序,即在排序前,会先调用数组的toString方法,将每个元素都隐式转成字符之后,再逐位比较,进行排序。 

    var arr = [6,1024,52,256,369];
    console.log(arr.sort());    //[1024, 256, 369, 52, 6]
    console.log(arr);           //[1024, 256, 369, 52, 6]---原数组改变

参数:sort(callback)
如果需要按照数值排序,需要传参。callback为回调函数,该函数应该具有两个参数,比较这两个参数,然后返回一个用于说明这两个值的相对顺序的数字(a-b)

其返回值如下:a-b    升序    b-a    降序

    var arr = [6,1024,52,256,369];
    console.log(arr.sort(fn));  //[6, 52, 256, 369, 1024]
    console.log(arr);           //[6, 52, 256, 369, 1024]---原数组改变
    function fn(a,b){
        return a-b;
    }
    var data = [
            { realname: "张三", age: 19 },
            { realname: "小明", age: 19 },
            { realname: "李四", age: 20 },
            { realname: "王五", age: 28 },
            { realname: "小红", age: 28 },
            { realname: "赵六", age: 21 },
        ]
    //数组中有引用类型,根据引用类型排序,a与b相当于数组元素,a.age取到对象的属性值
        data.sort(function (a, b) {
            return a.age - b.age;
        })

7、 indexOf()

作用:根据指定的数据,从头开始,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引

参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1 

返回值:元素的索引值,且只返回一个值

原数组不变

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

8、lastIndexOf() 

作用:根据指定的数据,从尾部开始,查询在数组中出现的位置,如果不存在指定的数据,返回-1。该方法是查询方法,不会对数组产生改变。
参数:lastIndexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1

返回值:元素的索引值,且只返回一个值

原数组不变

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

9、 toString()

作用:将数组转换成字符串,类似于没有参数的join()。该方法会在数据发生隐式类型转换时被自动调用,如果手动调用,就是直接转为字符串。
参数:无 

返回值:数组元素转换的字符串

原数组不变

    var arr = [1,2,3];
    console.log(arr.toString());     //1,2,3
    console.log(arr);                //[1,2,3]---原数组未改变

10、join() 

功能:根据指定分隔符将数组中的所有元素放入一个字符串,并返回这个字符串。
参数:join(str);参数可选,默认为","号,以传入的字符作为分隔符,其中‘’表示无分隔符

返回值:数组元素转换的字符串,字符串元素之间用参数值连接

原数组不变

    var arr = [1,2,3];
    console.log(arr.join());         //1,2,3
    console.log(arr.join("-"));      //1-2-3
    console.log(arr);                //[1,2,3]---原数组未改变

11、 valueOf()

作用:返回数组的原始值(一般情况下其实就是数组自身),一般由js在后台调用,并不显式的出现在代码中
参数:无 

返回值:数组自身

原数组不变

    var arr = [1,2,3];
    console.log(arr.valueOf());         //[1,2,3]
    console.log(arr);                   //[1,2,3]
    //为了证明返回的是数组自身
    console.log(arr.valueOf() == arr);  //true

12、 splice()

作用:向数组中添加,或从数组删除,或替换数组中的元素。

参数:arrayObj.splice(start,deleteNum,insert);  第一个参数 从索引值start 开始;第二个参数 delNum 删除元素的个数; 第三个参数 insert  插入的新元素;参数皆可选

        1、无参数传递,无操作;

        2、只写一个参数 会从指定开始的位置开始删除直到数组的末尾  以数组的形式返回删除的元素;

        3、写两个参数  会从指定的位置 删除指定个数的元素 并以数组的形式返回;

        4、写三个参数  从指定位置开始 删除指定的元素,并将新元素从指定开始的位置添加 ;

        5、写四个或更多元素   从指定位置开始 删除指定的元素,并将新元素从指定开始的位置添加 ,并将第三个参数及后面所有参数,插入到start的位置。

返回值:以数组的形式返回被删除/替换的元素

原数组为被添加、删除或替换元素后的新数组

    var arr = ["Tom","Jack","Lucy","Lily","May"];    
    console.log(arr.splice(2,0,"a","b"));  //[]
    console.log(arr);    //["Tom", "Jack", "a", "b", "Lucy", "Lily", "May"]---原数组改变

13、slice() 

作用:以数组的形式返回数组的一部分

参数: arrayObj.slice(start, [end]); strat表示从第几位开始;end为可选,表示到第几位结束(不包含end位),省略表示到最后一位;start和end都可以为负数,负数时表示从最后一位开始算起,如-1表示最后一位。

返回值:包含原数组中选中元素的新数组,无参数时,返回原数组的副本

原数组不变

    var arr = ["Tom","Jack","Lucy","Lily","May"];
    console.log(arr.slice(1,3));        //["Jack","Lucy"]
    console.log(arr.slice(1));          //["Jack","Lucy","Lily","May"]
    console.log(arr.slice(-4,-1));      //["Jack","Lucy","Lily"]
    console.log(arr.slice(-2));         //["Lily","May"]
    console.log(arr.slice(1,-2));       //["Jack","Lucy"]
    console.log(arr);                   //["Tom","Jack","Lucy","Lily","May"]---原数组未改变

 14、concat() 

功能:用于连接两个或多个数组
参数:concat(data1,data2,...);所有参数可选,要合并的数据;data为数组时,将data合并到原数组;data为具体数据时直接添加到原数组尾部

返回值:有参数传递,返回添加元素的数组;无参数时,返回原数组的副本

原数组不变

    var arr1 = [1,2,3]
    var arr2 = arr1.concat();
    console.log(arr1);           //[1,2,3]---原数组
    console.log(arr1 === arr2);  //false
    console.log(arr2);           //[1,2,3]---原数组的副本
    
    console.log(arr1.concat("hello","world"));           //[1,2,3,"hello","world"]
    console.log(arr1.concat(["a","b"],[[3,4],{"name":"admin"}]));   //[1,2,3,"a","b",[3,4],{"name":"admin"}]
    console.log(arr1);           //[1,2,3]---原数组未改变

补充slice()与concat() 在无参数传递时,返回的是原数组的副本,即对原数组进行拷贝。

需要注意的是:

        1、这两种方法是浅拷贝。当原数组中包含对象、函数或数组元素时,不可拷贝这些元素的堆地址,如果修改这些元素的值,原数组也会被修改。

        2、使用JSON.parse(JSON.stringify(array));可实现数组的深拷贝;

var arr = [1, 2, 3, 4, [10, 11]];
        var arr1 = arr.slice();
        var arr2 = arr.concat();
        arr1[4][1] = 88;
        arr2[4][0] = 100;
        console.log(arr);//[1,2,3,4,[100,88]]
        console.log(arr1);//[1,2,3,4,[100,88]]
        console.log(arr2);//[1,2,3,4,[100,88]]

15、 forEach()

作用:ES5新增的方法,用来遍历数组,没有返回值,因为return并不会起到终止代码运行并返回值的作用

参数:forEach(callback);callback默认有三个参数,分别为value(遍历到的数组的数据),index(对应的索引),self(数组自身)。

返回值:无

原数组不变

var arr = [2, 6, 77, 66, 5];
        var flag = 0;
        arr.forEach(function (value, index, self) {
            if (value > 10) {
                flag++;
            }
        });
        console.log(flag);//2

16、 map()

作用:1.同forEach功能;

   2.map的回调函数会将执行结果返回,最后map将所有回调函数的返回值组成新数组                  返回。

参数:map(callback);callback默认有三个参数,分别为value(遍历到的数组的数据),index(对应的索引),self(数组自身)。

返回值:将所有回调函数的返回值组成新数组返回

原数组不变

 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"]---原数组未改变

17、filter() 

作用:1.同forEach功能;

           2.filter的回调函数需要返回布尔值,当为true时,将本次数组的数据返回给filter,最

              后filter将所有回调函数的返回值组成新数组返回(此功能可理解为“过滤”)。

参数:filter(callback);callback默认有三个参数,分别为value,index,self。

返回值:当回调函数返回值为true时,将所有回调函数的返回值组成新数组返回

原数组不变

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"]---原数组未改变

补充:map()与filter()的区别:

1、map()方法是根据一定的条件对原数组内容进行处理返回一个新的数组,这个新数组不会改变原数组的长度,只改变原数组的内容。

自我理解:return后跟非判断句

2、filter()方法是根据一定的条件对原数组长度进行过滤返回一个新的数组,这个新数组改变了原数组的长度,不会改变原数组的内容。

自我理解:return后跟判断句,回调函数得到一个布尔值,true的时候才有返回值

//map()如果改变原数组的长度,返回的新数组长度不会有任何变化,效果如下:
let a = [1, 2, 3, 4, 5, 6]
let newA = a.map((x) => {
    if (x > 4) {
        return x
    }
})
console.log(a);  //(6) [1, 2, 3, 4, 5, 6]
console.log(newA);  //(6) [undefined, undefined, undefined, undefined, 5, 6]
//filter()如果改变原数组的内容,返回的原数组和新数组内容不会有任何变化,效果如下:
let a = [1, 2, 3, 4, 5, 6]
let newA = a.filter((x) => {
    return x + '个'
})
console.log(a);       //(6) [1, 2, 3, 4, 5, 6]
console.log(newA);    //(2)[5,6]

18、every() 

作用:

1、当每个回调函数的返回值都为true时,every的返回值为true,只要有一个回调函数的返回值为false,every的返回值都为false (一错全错,全对才对)

2、当回调函数的返回值为true时,类似于forEach的功能,遍历所有;如果为false,那么停止执行,后面的数据不再遍历,停在第一个返回false的位置。(true时才遍历元素)

参数:every(callback);这个回调函数需要有返回值。callback默认有三个参数,分别为value,index,self。

返回值:当所有回调函数返回值为true时,返回true,此时相当于foreach();当回调函数有一个返回值为false时,返回false,停止遍历;

原数组不变

自我理解:因为每个回调函数都需要返回一个布尔值,因此return后跟的是一个判断句或者一个布尔值

//作用1:
//当每个回调函数的返回值都为true时,every的返回值为true
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
    var a = arr.every(function(value,index,self){
        return value.length > 3;
    })
    console.log(a);           //false
//只要有一个回调函数的返回值为false,every的返回值都为false
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
    var a = arr.every(function(value,index,self){
        return value.length > 2;
    })
    console.log(a);           //true
//作用2:
//当回调函数的返回值为true时,类似于forEach的功能,遍历所有;
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
    var a = arr.every(function(value,index,self){
        console.log(value + "--" + index + "--" + (arr == self))
        return true;
    })
//如果为false,那么停止执行,后面的数据不再遍历,停在第一个返回false的位置。
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
    var a = arr.every(function(value,index,self){
        console.log(value + "--" + index + "--" + (arr == self))
        return value.length < 4;
    })

19、 some()

作用:

1、只要有一个回调函数的返回值都为true,some的返回值为true,所有回调函数的返回值为false,some的返回值才为false(一对全对,全错才错)

2、当回调函数的返回值为false时,类似于forEach的功能,遍历所有;如果为true,那么停止执行,后面的数据不再遍历,停在第一个返回true的位置。(false时才遍历元素)

参数:some(callback);这个回调函数需要有返回值。callback默认有三个参数,分别为value,index,self。

返回值:当所有回调函数返回值为false时,返回false,此时相当于foreach();当回调函数有一个返回值为true时,返回true,停止遍历;

原数组不变

自我理解:与every()实现的功能差不多,只是布尔值对方法的影响正好相反,多用于查找唯一元素的情况

//作用1:
//只要有一个回调函数的返回值都为true,some的返回值为true,
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
    var a = arr.some(function(value,index,self){
        return value.length > 3;
    })
    console.log(a);             //true
//所有回调函数的返回值为false,some的返回值才为false
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
    var a = arr.some(function(value,index,self){
        return value.length > 4;
    })
    console.log(a);             //false
//作用2:
//当回调函数的返回值为false时,类似于forEach的功能,遍历所有;
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
    var a = arr.some(function(value,index,self){
        console.log(value + "--" + index + "--" + (arr == self))
        return false;
    })
    // 打印结果为:
    // Tom--0--true
    // abc--1--true
    // Jack--2--true
    // Lucy--3--true
    // Lily--4--true
    // May--5--true
//如果为true,那么停止执行,后面的数据不再遍历,停在第一个返回true的位置。
 var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
    var a = arr.some(function(value,index,self){
        console.log(value + "--" + index + "--" + (arr == self))
        return true;
    })
    // 打印结果为:
    // Tom--0--true

20、reduce() 

作用:从数组的第一项开始,逐个遍历到最后,迭代数组的所有项,然后构建一个最终返回的值。返回函数累计处理的结果,经常用于求和等

参数:

reduce(function(累计值,当前元素 [,索引号] [,源数组]){ },起始值);

累计值参数:

1、如果有起始值,则以起始值为准开始累计,即累计值=起始值;

2、如果没有起始值,则累计值以数组的第一个数组元素作为起始值开始累计;

3、以后每次遍历就会用后面的数组元素,累计到累计值里(类似求和里面的sum)

返回值:return后的公式构建得到的值

原数组不变

//demo1:不省略initial参数,回调函数没有返回值
    var arr = [10,20,30,40,50];
    arr.reduce(function(prev,now,index,self){
        console.log(prev + "--" + now + "--" + index + "--" + (arr == self))
    }, 2019)
    // 打印结果为:
    // 2019--10--0--true
    // undefined--20--1--true
    // undefined--30--2--true
    // undefined--40--3--true
    // undefined--50--4--true
    // 此时回调函数没有return,所以从第二次开始,prev拿到的是undefined

    //demo2:省略initial参数,回调函数没有返回值
    var arr = [10,20,30,40,50];
    arr.reduce(function(prev,now,index,self){
        console.log(prev + "--" + now + "--" + index + "--" + (arr == self))
    })
    // 打印结果为:第一次,回调函数的第一个参数是数组的第一项。第二个参数就是数组的第二项
    // 10--20--1--true
    // undefined--30--2--true
    // undefined--40--3--true
    // undefined--50--4--true
    // 此时回调函数没有return,所以从第二次开始,prev拿到的是undefined

    //demo3:不省略initial参数,回调函数有返回值
    var arr = [10,20,30,40,50];
    arr.reduce(function(prev,now,index,self){
        console.log(prev + "--" + now + "--" + index + "--" + (arr == self));
        return "hello";
    }, 2019)
    // 打印结果为:
    // 2019--10--0--true
    // hello--20--1--true
    // hello--30--2--true
    // hello--40--3--true
    // hello--50--4--true
    // 此时回调函数有return,所以从第二次开始,prev拿到的是回调函数return的值

    //demo4:省略initial参数,回调函数有返回值
    var arr = [10,20,30,40,50];
    arr.reduce(function(prev,now,index,self){
        console.log(prev + "--" + now + "--" + index + "--" + (arr == self));
        return "hello";
    })
    // 打印结果为:第一次,回调函数的第一个参数是数组的第一项。第二个参数就是数组的第二项
    // 10--20--1--true
    // hello--30--2--true
    // hello--40--3--true
    // hello--50--4--true
    // 此时回调函数有return,所以从第二次开始,prev拿到的是回调函数return的值

    //demo5:使用reduce计算数组中所有数据的和
    var arr = [10,20,30,40,50];
    var sum = arr.reduce(function(prev,now,index,self){
        return prev + now;
    })
    console.log(sum);      //150
    // 回调函数的最后一次return的结果被返回到reduce方法的身上

    //demo6:使用reduce计算数组中所有数据的和
    var arr = [10,20,30,40,50];
    var sum = arr.reduce(function(prev,now,index,self){
        return prev + now;
    }, 8)
    console.log(sum);      //158
    // 回调函数的最后一次return的结果被返回到reduce方法的身上
    // 因为reduce有第二个参数initial,在第一次执行时被计算,所以最终结果被加上8

21、reduceRight() 

与reduce的区别仅在于:从数组的最后一项开始,向前逐个遍历到第一位,反向归并。

22、find()

作用:返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。

参数:find(function(value,index,array){},[,thisArg]);

返回值:数组中满足函数条件的第一个元素,没有找到满足条件的元素则返回undefined

原数组不变

const arr = [1, 2, 3, 4, 5];
        let element = arr.find(value => value > 3);
        console.log(element);//4

23、findIndex() 

作用:返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回-1。

参数:findIndex(function(value,index,array){},[,thisArg]);

返回值:数组中通过提供测试函数的第一个元素的索引。否则,返回-1

原数组不变

 const arr = [1, 2, 3, 4, 5];
        let index = arr.findIndex(value => value > 3);
        console.log(index);//3

24、Array.from() 

作用:将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象。

参数:第一个参数:需要转换的对象;第二个参数:类似map(),对每个元素进行处理(可省)

返回值:返回对象转换成的新数组

原对象不变

//所谓类似数组的对象,本质特征只有一点,即必须有length属性
let arrayLike = {
    '0': 'a',
    '1': 'b',
    '2': 'c',
    length: 3
};

// ES5 的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']

// ES6 的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']

补充: 扩展运算符背后调用的是遍历器接口(Symbol.iterator),如果一个对象没有部署这个接口,就无法转换。因此,任何有length属性的对象,都可以通过Array.from()方法转为数组,而此时扩展运算符就无法转换。

//只要是部署了 Iterator 接口的数据结构,Array.from()都能将其转为数组。
Array.from('hello')
// ['h', 'e', 'l', 'l', 'o']

let namesSet = new Set(['a', 'b'])
Array.from(namesSet) // ['a', 'b']

Array.from() 第二个参数的使用 :只要有一个原始的数据结构,你就可以先对它的值进行处理,然后转成规范的数组结构,进而就可以使用数量众多的数组方法。

Array.from(arrayLike, x => x * x);
// 等同于
Array.from(arrayLike).map(x => x * x);

Array.from([1, 2, 3], (x) => x * x)
// [1, 4, 9]

25、includes 

作用: 返回一个布尔值,表示某个数组是否包含给定的值。与字符串的includes方法类似。

参数:includes(值,搜索的起始位置),第二个参数表示搜索的起始位置,默认为0。如果第二个参数为负数,则表示倒数的位置,如果这时它大于数组长度(比如第二个参数为-4,但数组长度为3),则会重置为从0开始

返回值:一个布尔值

原数组不变

[1, 2, 3].includes(2)     // true
[1, 2, 3].includes(4)     // false
[1, 2, NaN].includes(NaN) // true

[1, 2, 3].includes(3, 3);  // false
[1, 2, 3].includes(3, -1); // true

注意: 在ES6之前使用indexOf方法,检查是否包含某个值,具有局限性;ES6后使用includes方法。

 

 

 

 

 

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值