JS数组相关知识

这里详细讲解了数组的相关知识,尽量表达的让大家能够看到明白,大家仔细看并且实际操作一下,也不是特别难懂,不要看到数组就怕了。只要认真去理解,多实践,我相信大家一定可以把数组这块儿的知识掌握的很好,这里面有很多方法,因为时间有限,我就没有一 一去给大家演示了。大家可以多去试试每个方法的功能,写好注释,等自己需要用的时候,回过头拿来用就可以了。
1.数组简介:
数组:是一组数据的集合,数组的每一个数据叫做一个元素
数组元素可以是任意类型,同一个数组中的不同元素可能是对象或数组(js中可以多种数据类型可以在同一个数组当中)
1.每个数组都具有一个length属性,length属性就是数组元素的个数(数组长度)

2.数组中每个元素在数组中有一个位置,以数字表示,称为索引(下标)

3.索引从0开始排列,[0]表示第一个数据,以此类推

4.数组最大的索引,始终比数组长度小1

5.数组的数据类型是一个对象,其实就是个加了数字索引和length属性的特殊对象

JavaScript有二维数组或者对象存歌词 js的二维数组_数组

2.数组的创建方式:通过数组名.length=值(数字)可以修改数组的长度,也可以直接给它赋值0,表示清空数组。
1 . 隐式方式创建的数组,最常用的方式(推荐使用这种方式)
var arr=[“小q”,“小w”,“小e”,“小r”];
2.直接实例化,通过函数Array(),Array()括号内可以给一个参数,表示创建数组拥有的长度。
var arr=new Array(“小q”,“小w”,“小e”,“小d”);
3.创建数组并给数组元素赋值,同过下标赋值

var arr=new Array();
 arr[0]=“小q”;
 arr[1]=“小w”;
 arr[2]=“小e”;
 arr[3]=“小r”;

3.数组的修改和添加(通过数组的下标进行添加,数组中最重要的就算理解数组下标.也可以叫索引)
a.数组中数据的修改:直接使用下标对数组元素重新赋值
例: arr[2]=“小明”;
b.数组中数据增加(下标大过原本数组的长度就可以了)

例: var arr=[“小q”,“小w”,“小e”,“小d”];

第一种添加方式:

arr[4]=“小r”;
 arr[5]=“小t”;
 arr[6]=“小y”;

第二种添加方式:

arr[arr.length]=“小k”;
 arr[arr.length]=“小y”;

4.遍历数组:
因为数组的值是通过下标来访问的,如果我们想要得到数组元素的值,那就遍历数组,取到相应的下标,就可以得到相应的值。
例如:现有一个数组: var arr=[“小q”,“小w”,“小e”,“小d”];

第一种:普通for

for (var i=0;i<4;i++) {
 document.write(arr[i]+"
");
 }

第二种:使用数组长度的for循环 (因为此时的数组有四个元素,所以arr.length=4)

for (var i=0;i<arr.length;i++) {
 document.write(arr[i]+"
");
 }

第三种:优化版for循环

var len=arr.length;
 for (var i=0;i<len;i++) {
 document.write(arr[i]+"
");
 }

第四种:for-in遍历,使用下标
使用的人很多,在所有遍历方式中效率最低(如果数据量比较小使用这个方式是很好的)

for (i in arr) {
 document.write(arr[i]+"
");
 }

第五种:for-of遍历(ES6),使用数据, for-of遍历比for-in遍历效率高,但是比普通for循环效率要低

for (value of arr) {
 document.write(value+
");
 }

5.数组实例:求最大值和最小值(大家可以可以试着求数组平均数,求和,逆序输出,只要合理的利用好数组下标这些都可以很简单的实现)
代码如下:

JavaScript有二维数组或者对象存歌词 js的二维数组_数组名_02


6.二维数组:其实二维数组也是数组,只是原本的一维数组里面装的是单个元素,而二维数组里面装的还是一个数组,就行相当于一个表格一样的形式,数组中嵌套数组。

JavaScript有二维数组或者对象存歌词 js的二维数组_javascript_03


1.二维数组的建立:

var arr=[ [27,54,66],[62,55,75],[91,25,36], ];二维数组的遍历:

JavaScript有二维数组或者对象存歌词 js的二维数组_javascript_04


7.数组中常用的方法:(重点掌握)

1.数组名.join();括号内可以放入一个参数(分隔符),不写默认为逗号。

将数组元素转换为一个字符串,原来的数组会被保留。

2.Array.from()将伪数组转成数组,只要有length属性的就可以转成数组,括号内的参数可以是需要转为为数组的参数,例如传入一个字符串。

JavaScript有二维数组或者对象存歌词 js的二维数组_数组_05


3.sort() 用于对数组的元素进行排序(从小到大)。

用法:数组名.sort() ;

4.pop() ;方法将数组末尾移除最后一项,减少数组的 length 值,然后返回移除的元素,会直接修改原数组,而不是创建一个新的数组。

用法:数组名.pop();

5.push() 用于向数组的末尾添加一个或多个元素,并返回修改后数组的长度(数值类型),会直接修改原数组,而不是创建一个新的数组。

用法:数组名.push();

6.shift() 删除数组开头第一项,减少数组的 length 值,然后返回移除的元素,会直接修改原数组,而不是创建一个新的数组。

用法:数组名.shift();

7.unshift() 用于向数组的开头添加一个或多个元素,并返回修改后数组的长度(数值类型),会直接修改原数组,而不是创建一个新的数组。

语法:数组名.unshift() ;

8.splice():可以实现删除,插入,替换,截取。会直接修改原数组

1.删除:可以删除任意数量的项,需指定 2 个参数:要删除的第一项的位置和要删除的元素个数。

2.插入:可以向指定位置插入任意数量的项,需提供 至少3 个参数:1.起始位置、 2.(要删除的项数0)和要插入的项(可以有多个)。

例:

JavaScript有二维数组或者对象存歌词 js的二维数组_字符串_06


9.slice():截取指定下标的数组或字符串元素。数组,字符串均有效,不会修改原数组或字符串

语法: slice(开始下标,结束下标);

如果结束下标未被规定,那么会选取从开始下标到数组结尾的所有元素

返回一个包含从开始下标到结束下(不包括结束标下标)的新数组或字符串

可使用负值从数组的尾部选取元素(从左往右)

10.indexOf() 查找指定元素的下标,从前往后查找

若有重复的,则返回第一个查到的下标, 若不存在,则返回 -1

用法:数组名.indexOf() ;括号内的参数是需要查找的元素。

11.lastIndexOf() 查找指定元素的下标,从后往前查找

若有重复的,则返回第一个查到的下标

若不存在,则返回 -1

用法:数组名.lastIndexOf() ;括号内的参数是需要查找的元素。

12.数组的合并concat() 方法用于连接两个或多个数组

该方法会先创建当前数组一个副本,不会改变原有的数组,会返回一个新数组。

用法:数组名1.合并concat(需要合并的数组) ;

12set数据类型的使用

它类似于数组,但是成员的值都是唯一的,没有重复的值。

定义一个数组: var arrOne = [5,1,5,2,1,3];

1.数组转set
var setarr = new Set(arrOne); 返回[1,2,3]
2.set转数组
第一种方法:
var arrTwo = Array.from(setarr); 返回[1,2,3]
第二种方法:
var arrThree = […setarr]; 返回[1,2,3]

3.has()判断一个值是否在set中
返回布尔值,在为true,不在为false
用法:set数据类型变量名.has(需要判断的值);

当然这里的知识也不是特别全面,但是我们学习一门编程语言不是什么方法都要掌握,因为里面的方法和知识太多我们记不住那么多,我们这时候就要很好的利用百度,当我们需要这个功能的时候就去搜索相应的知识点,因为有了基础,去看也是非常好理解的。