AI智能
改变未来

JavaScript基础05—数组方法


数组方法

push()

在数组的尾部添加若干个元素

参数:要增加的元素,可以是多个

返回值:新数组的长度

修改原数组

while(arr.push({})<10); 循环给尾部添加若干个元素

pop()

删除最后一位

参数:无

返回值:删除的元素

修改原数组

while(arr.pop()!==3); 删除到某元素为止,同时该元素也会被删除

如果数组中存储的是对象,我们必须将所有的对象引用全部设为null

  • while和for都可以,for的效率更高

    while(arr.length>0){
    arr[arr.length-1]=null;
    arr.pop();
    }

  • for(var i=0;i<arr.length;i++){
    arr[i]=null;
    }
    arr.length=0;

unshift()

在数组的头部添加若干个元素

参数:要增加的元素,可以是多个

返回值:数组增加之后的长度

修改原数组

shift()

将数组的头部一个元素删除

参数:无

返回值:删除的元素

修改原数组

join()

使用某个字符作为连接符,将所有数组的元素连接成为一个字符串

参数:转成字符之后,每个数据之间的连接符(如果连接符没有,默认以逗号连接)

返回值:转换的字符串

不修改原数组

concat()

数组连接若干个数组或者元素

参数:要连接的元素,可以是多个

返回值:连接完成的数组

不修改原数组

splice()

删除元素,并向数组添加新元素

参数:

两个:1起始索引,2删除个数,不插入数据,只删除
两个以上:1起始索引,2删除个数,之后 删除,并插入后面的元素

返回值:删除了的元素

修改原数组

举例

  • var arr1=arr.splice(1);//删除到尾部
  • var arr1=arr.splice(-1);//如果第一个参数是负数,从后向前数开始删除
  • var arr1=arr.splice(0);//将一个数组的所有元素转移到另一个数组
  • var arr1=arr.splice();//没有删除返回空数组
  • var arr1=arr.splice(-3,2);//从倒数第3个元素向后删除2个元素
  • var arr1=arr.splice(1,2,-2,-3);//从第一位开始向后删除两个元素,并且在该位置插入-2和-3,替换,并且返回被删除两个元素组成的数组
  • var arr1=arr.splice(1,arr.length,0,-1,-2);//从某个位置开始删除到数组的尾部
  • var arr1=arr.splice(1,0,0);//在第一位插入一个元素0,不删除,返回空数组

slice()

从第几项开始到第几项结束复制这些元素到新数组中

参数:

一个:表示从指定位置开始截取,到结束
两个:表示从指定位置到结束位置的前一个

返回值:截取并拷贝出来的新数组

不修改原数组

举例

  • var arr1=arr.slice(0);//复制数组
  • var arr1=arr.slice();//复制数组
  • var arr1=arr.slice(-2);//从后向前数第2个元素到尾部的所有元素复制
  • var arr1=arr.slice(1,2); //从第一项复制到第二项,不包括结束这一项

拓展:将列表转换为数组

  • ES6 列表型强转数组 Array.from(divs);
  • Array.prototype.slice.call(divs);或[].slice.call(divs);
  • Array.prototype.concat.apply([],divs);或[].concat.apply([],divs);

sort()

排序

参数:函数:function(m,n){return n-m;} m-n数值升序,n-m数值降序

返回值:排序之后的数组

修改原数组

拓展:常用排序算法

  • 冒泡排序

    两两比较,大的放后面

  • 选择排序

      按照从左到右的顺序,依次取出每个数据,后后面所有数据做比较,找到最小值,交换
  • 快排序

      一分为二,分别快排序,递归进行

    reverse()

    当前数组按照倒装顺序将原数组颠倒

    参数:无

    返回值:翻转之后的数组(修改之后的原数组)

    修改原数组

    indexOf()

    返回指定数据所在的索引,没有返回-1

    参数:

    1个 要查找的数据
    2个 1要搜索的元素 2从第几个下标开始搜索

    返回值:索引或-1

    不修改原数组

    lastIndexOf()

    从后向前查找元素

    参数:2个

    要查找的元素,从什么位置开始查找

    返回值:索引或-1

    不修改原数组

    fill()

    填充

    参数 :3个

    要填充的值,从什么位置开始,到什么位置之前结束

    返回值:填充后的数组

    修改原数组

    注:fill只能用于有长度的数组,如果不给与开始位置和结束位置,就会全部填充覆盖

    forEach()

    遍历数组,可以获取使用元素和下标,自动过滤空元素(空元素不遍历)

    参数:函数,函数自带三个形参,1数据,2索引,3数组自身

    返回值:无

    不修改原数组

    缺陷:函数中this指向将会被改变

    map()

    遍历数组

    参数:函数,函数自带三个形参,1数据,2索引,3数组自身

    不修改原数组

    返回值:数组,其中的数据是:每次遍历到数组中数据时的返回值

    注:新数组的长度和原数组相同

    与forEach区别:有无返回值

    some()

    遍历数组,检测所有数据(只要有一个返回true,就是true,同时停止遍历)

    参数:函数,函数自带三个形参,1数据,2索引,3数组自身

    返回值:布尔值,遍历数组中数据时,只要有一个返回true,就是true,同时停止遍历

    不修改原数组

    every()

    遍历数组,检测所有数据(必须所有返回true,才是true)

    参数:函数,函数自带三个形参,1数据,2索引,3数组自身

    返回值:布尔值,遍历数组中数据时,必须所有返回true,才是true,只要有一个false,就是false,停止遍历

    不修改原数组

    filter()

    遍历数组,过滤数据

    参数:函数,函数自带三个形参,1数据,2索引,3数组自身

    返回值:数组,中的数据是:每次遍历到数组中数据时的返回值,为true时的值

    不修改原数组

    reduce()

    遍历数组,归并

    参数:

    1.函数,这个函数自带四个形参,1上一个值,2数据,3索引,4数组自身2.指定默认情况下      的   上一个值↑;如果没有指定,上一个值,默认找数组的第一个数据

    返回值:最后一个遍历的返回值

    不修改原数组

    XMind: ZEN – Trial Version

  • 赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » JavaScript基础05—数组方法