JS中的数组以及数组的常用方法

JS中的数组以及数组的常用方法

在编程语言中每一门语言都会定义一个或者多个存放数据的集合,而JavaScript当然也不例外.

在JS中我们使用数组来存放数据.那么到底什么是数组呢?

数组的概念

  • 数组的本质是一组可以存放相关数据的集合

  • 数组为其中的数据提供了一系列方便访问以及获取的方式

  • 数组里面的每个成员称为一个元素,一个数组里面可以存放任意多个以及任意类型的数据也就是说一个JS数组中的元素类型可以不相同

  • 数组中的元素与元素之间通过逗号进行分隔

数组的创建

一:使用关键字new创建

var arr1 = new Array();                 //创建空数组
var arr2 = new Array(10)//创建一个长度为10的数组
var arr3 =  new Array(5,4,3,2,1)//创建数组并初始化
  • 数组的创建方法一里面new后面跟的是Array,添加数组可以使用数组索引的方式进行添加

二:直接使用[]进行创建

var arr = [];                  //创建一个空数组
var arr2 = [1,2,3];        //创建一个有三个元素的数组
  • 数组的创建方法二里面使用[]这种方式创建数组的话可以直接将元素填写在[]中.

数组的索引

索引的概念

  • 数组中的一个表示元素位置的特殊序列号

  • 我们可以通数组名[索引来获取某个元素,索引从0开始,只能取正数

  • 我们对数组元素的访问,设置,修改都需要使用索引来完成

实例

var arr = [1,2,3];
alert(arr[2]);

注意:

  • 如果访问数组时,使用的索引超出元素的索引对应范围,没有办法得到对应的数据因此返回的结果是undefined
  • 不管数组中元素发生怎样的变化,数组中的索引总是从0开始连续的

数组的长度

  • JS中数组的长度指的是数组中元素的个数,和数组的索引没有任何的关系
  • 当数组中的元素个数发生改变时,length的值会跟着改变

length语法

var arr = [1, 2, 3]
alert(arr.length)//可以获取到数组的长度

注意:

JS中数组的length属性是可以被修改的

  • 如果length的值比原始数组的元素个数大,则使用空元素进行填充.
  • 如果length的值比原始数组的元素个数小,则将多余的元素从最后一个开始逐个删掉,而且是不可恢复的删掉.

数组的遍历

遍历的概念

  • 将数组的所有元素从头到尾依次访问一遍.

  • 因为数组中元素的索引是不会重复的,而且数组的索引必然是连续的,因此我们可以使用for循环语法对数组进行遍历.

  • 我们在遍历数组之前,需要明确数组中的元素个数,因此我们使用数组的属性length来获取数组的长度

往数组中添加新元素

数组中元素的添加方式

一,使用索引的方式进行添加元素

实例:

var arr = [1, 2, 3, 4, 5, 6]
arr[arr.length] = 8
document.write(arr)
//最后的结果:1,2,3,4,5,6,8

注意:

  • 使用索引添加数组时,添加的元素索引值必须是原数组的长度
  • 如果使用的索引小于数组的长度,那么就是修改数组中对应索引的位置了
  • 如果使用的索引超出数组的长度,那么中间多出来的元素位置使用空元素进行占位

二,使用push()函数进行添加

实例

var arr = [1, 2, 3, 4, 5, 6]
arr.push(8)
document.write(arr)
//最后的结果:1,2,3,4,5,6,8

数组的常用方法

数组在JavaScript中经常使用,如何对数组进行增删改非常重要,下面为数组的常用方法:

在数组末尾插入元素

  • arr.push(value),在数组的末尾添加一个或多个元素,并返回数组的新长度。

例如:

let arr=[1,2,3,4,5]
var longth=arr.push(6,7);
console.log(arr, longth);
  • 数组的arr的值变为arr[1,2,3,4,5,6,7];
  • length接收返回的是修改后数组的长度7;

删除数组末尾的元素

  • arr.pop()删除索引值最大的元素,并返回被删除的元素。
let arr=[1,2,3,4,5]
var delElement=arr.pop();
console.log(arr, delElement);
  • arr的值为[1,2,3,4] ,delElement的值为5
  • arr.pop()的与arr.length的效果一样,但arr.length没有返回值;

在数组的头部插入元素

  • unshift(value);在数组的头部添加一个或多个元素,并返回数组的新长度
let arr=[1,2,3,4,5]
var length= unshift(0);
console.log(arr,length);//arr的值为[0,1,2,3,4,5];length的值为更改后数组的长度6;

删除数组的头部元素

  • shift();删除索引为0的元素,并返回删除的元素
let arr=[1,2,3,4,5]
var delElement= unshift();
console.log(arr, delElement);
  • arr的值为[2,3,4,5];delElement的值为被删除的元素1

数组和数组(或元素)的合并

  • concat()合并数组或元素,返回新的数组,原数组不会改变
let arr=[1,2,3,4,5]
let newArr=arr.concat([6,7,8],9,10);
console.log(newArr,arr);
  • newArr的值为[1,2,3,4,5,6,7,8,9,10];
  • arr的值还是原来的[1,2,3,4,5];
  • concat()还可以复制一个新数组;
  • let copyArr=arr.concat();//copyArr的值和arr的相同

在数组中添加删除或替换元素

  • splice();在任意位置添加或删除元素,返回删除或被替换的值,如果没有被删除或替换则返回空数组;
  • splice()方法会修改原数组的值;

只有一个值时,从当前位置删除到数组末尾

let arr=[1,2,3,4,5]let num1=arr.splice(1)
console.log(num1;arr)//num=[2,3,4,5];arr=[1];

有两个值时,第一个值为删除的位置,第二个值为删除的个数;

let arr=[1,2,3,4,5]let num1=arr.splice(2,3)//删除从索引值2开始的3个元素
console.log(num1;arr);// num1=[3,4,5],arr=[1,2]

有三个或者多个值时,第一个值为插入元素的位置,第二个值为替换的个数,后面的值都为插入的新元素;

let arr=[1,2,3,4,5]let num2=arr.splice(2,1,6,7,8);//从索引值2开始替换掉1个元素,并且插入6,7,8

//如果第二个值为0,则不替换,直接插入6,7,8;
console.log(num2;arr);//被替换的值num2=[3]; arr=[1,2,6,7,8,4,5]

截取复制数组指定位置的内容

  • slice(开始位置,结束位置);第二个参数不写默认到尾部,只能从前往后截取;返回的值为截取到的内容形成的新数组;
let copyArr=arr.slice(); // slice()或者slice(0)都可以复制数组;
let arr=[1,2,3,4,5]let newArr=arr.slice(1,3);//截取索引1到索引3(不包括3)的值;
console.log(newArr,arr)//newArr=[2,3];arr=[1,2,3,4,5];
  • slice()方法不会更改到原数组的值

指定字符连接字符串

  • join();数组的每个元素以指定的字符连接形成新字符串返回;
let arr=[1,2,3,4,5];

let newArr=arr.join()//默认用逗号连接
console.log(newArr);//newArr=1,2,3,4,5;

//如果连接符为空字符串,则会无缝连接
console.log(arr.join(“”));//输出为12345;

将数组进行排序

  • sort()将数组进行排序(升序),返回新数组,原数组也会改变;
let arr=[2,3,5,1,4];
let newArr=arr.sort();
console.log(newArr,arr)//newArr=[1,2,3,4,5]; arr r=[1,2,3,4,5]

将数组进行倒序

  • reverse();可以将数组进行倒序,并返回新数组,原数组也会随之改变;
let arr=[1,2,3,4,5];
let newArr=arr. reverse();
console.log(newArr,arr)//newArr=[5,4,3,2,1]; arr=[5,4,3,2,1];

综上为数组的常用方法!

数组中的方法还有很多,这里并没有写全,有兴趣的同学可以点击下放链接自己去看看,了解一下!

JS中数组的常用方法

猜你喜欢

转载自blog.csdn.net/XVJINHUA954/article/details/110623957