小程序开发|小程序制作|小程序开发网

搜索

js数组常用方法

2022-6-6 10:58| 发布者: 李白笑了| 查看: 193| 评论: 1

摘要: 重点:    数组的新增方法:some,every,filter,map,foreach, for-in  分别作用和区别    拼接join   截取slice    注意点:                伪数组和数组之间的转换,querySelector提取出

重点:

    数组的新增方法:some,every,filter,map,foreach, for-in  分别作用和区别

    拼接join   截取slice

    注意点:    

            伪数组和数组之间的转换,querySelector提取出来的是伪数组

            对象用for-in遍历  for(var key in obj){}

            在jQuery中:each()方法:主要用来循环jquery对象或数组。

                jquery对象.each(  function(k,v)   {   }  );

                v是一个DOM对象,需转化为jq对象 $(v),于js中不同

知识点:

1. 定义:一组数的集合,数组里可以一次性存储多个值,引用数据类型

2.创建:

        1.使用构造函数,通过一个new关键字和Array关键字来创建

        语法: var arr = new Array()

        2.字面量形式

        语法:  var arr = []

3.伪数组:不是真正的数组,但可以使用数组的一些方法和属性

        例如通过document.querySelector获取到的就是伪数组

        转换成数组的方式:Array.from()

4.数组的方法

        shift():删除数组中第一个元素,并将长度减1.  返回被删除的元素

        pop():删除数组中最后一个元素,并将长度减1.  返回被删除的元素

        unshift():往数组前面添加一个或多个数组元素,长度要改变,返回增加后数组的长度

        push():往数组结尾添加一个或多个数组元素,长度要改变;   返回后数组的长度

        concat() : 方法用于连接两个或多个数组, 不改变原数组。返回一个新的数组。

        var newData = arr1.concat(arr2)

        reverse()  逆向排序;

        include() 判断数组是否包含某个值

        !!!join(“拼接符”)将数组转成字符串,中间以拼接符连接例如 &,常用于查询字符串(使用频率较高)

        slice(start,end):  不修改原数组, 将原数组中的指定区域数据提取出来。

        start开始 end结束。 如果参数是负值表示从倒数开始。不含结束位置

        splice有以下几个使用方式:

            删除:用于删除元素,两个参数,第一个参数(要删除第一项的位置),第二个参数(要删除的项数)

            插入:向数组指定位置插入任意项元素。三个参数,第一个参数(开始位置),第二个参数(0),第三个参数(插入的项)  !!!注意:第二个参数(0)为0不会删除任何项

            替换:向数组指定位置插入任意项元素,同时删除任意数量的项,三个参数。

            第一个参数(起始位置),第二个参数(删除的项数),第三个参数(插入任意数量的项)


        fill(value,start,end): 使用固定值来替换数组的元素,可用于数组的初始化,两个可选参数,表示填充的起始位置和结束位置


        toString()  将数组转成字符串  属于一个对象的方法


            注意:String() 不属于数组这个对象,它是强制转换数据类型的方法

5.sort()方法:排序

        1.作用:默认按字母和升序值将值作为字符串排列,会改变原数组

        如果数字按字符串排序,则 "25" 大于 "100" ,因为 "2" 大于 "1"。

        正因为如此,sort() 方法在对数字进行排序时会产生不正确的结果。

        官方解决办法:通过比较函数来解决  

        语法:array.sort(compareFunction)

        compareFunction:定义替代排序顺序的函数。该函数应返回负值、零值或正值,具体取决于参数,例如:

        function(a, b){return a-b}

        sort() 方法比较两个值时,将值发送给比较函数,根据返回的(负、零、正)值对值进行排序。

        a - b 两数比较,如果是正数就交换位置,负数位置不变

        例子:

        var res = arr.sort(function(a,b){

            return a - b

        })  //作用将数组进行升序排列,若是b-a则是降序排列

6.ES5新增的数组方法:

    1.indexOf(data,start) 接受两个参数:要查找的项和查找起点位置的索引(可选)

    查找一个元素在数组中的位置(下标)

    默认查找数组里面元素第一次出现的位置

    2.foreach() :对数组进行遍历,对数组中每一项运行给定的函数,这个方法没有返回值

    arr.forEach(function(item,index){console.log(item)})

    参数一表示数组元素,参数二表示数组元素下标

    3.map(callback) :会遍历当前数组,然后调用参数中的的方法,返回当前参数的返回值

    map可以改变当前循环的值,返回一个新的被改变过的数组(map需要return),一般用来处理需要修改某一个数组的值

    特点:一一对应,映射

    作用:读取数据

    4.filter()遍历和过滤。返回符合条件的元素的数组,在循环的时候判断是否为true

    特点:过滤

    5. some(): 检测数组中的元素是否满足指定条件(函数提供)。如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。否则返回false

    6.every(): 检测数组所有元素是否都符合指定条件(通过函数提供)。如果有一个不符合就返回false


数组和字符串方法的区别总结:

数组和字符串共同的方法有slice、concat、indexOf、lastIndexOf。

数组转字符串方法为 join,字符串转数组方法为 split。

数组方法中会改变原数组的方法有:sort 、reverse、splice 。

数组方法中 slice 与 splice 的区别是:第一,第二个参数取值不同。前者是数组尾部的索引值,后者是要截取的元素个数。第二,是原数组返回的结果不同,前者不会改变原数组,后者原数组中只剩下未被删除的元素。

字符串方法中 slice、substring、substr 的区别是:第一, slice 既可用于字符串,也可以用于数组。第二,slice 与 substring 的第二个参数是要获取的尾部元素索引值。 而 substr 的第二个参数是要获取的元素个数。第三,substring 支持反向截取,比如 substring(5,2)表示截取2~5之间的字符串,而 slice 不支持。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

鲜花

握手

雷人

路过

鸡蛋
发表评论

最新评论

引用 李白笑了 2022-7-21 18:02
方法很多,常用的就那几个

查看全部评论(1)

返回顶部