js数组常用方法

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

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

    将其转换成数组的方法:Array.from()

    补充:数组和伪数组

2. 数组的方法

- 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() 不属于数组这个对象,它是强制转换数据类型的方法

3. sort()方法:默认按字母和升序值将值作为字符串排列

    如果数字按字符串排序,则 "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){

returna-b

})//若是b-a则是降序排列

4. ES5新增的数组方法:

indexOf(data,start) 查找一个元素在数组中的位置,参数:[要查找的项和查找起点位置的索引(可选)],默认查找数组里面元素第一次出现的位置

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

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

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

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

  特点:一一对应,映射

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

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

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

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

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

数组和字符串共同的方法有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 不支持。

  注意点: 

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

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

jquery对象.each( function(k,v)  {  } );v是一个DOM对象,需转化为jq对象 $(v),与js中不同

你可能感兴趣的:(js数组常用方法)