所谓数组,顾名思义就是一组数据,不过是一个有序的数据集合。本篇文章主要就是介绍本人遇到的部分关于数组的知识。
一、我们为什么要用数组?
这个问题其实很简单,我们在接触数组之后就会知道,数组就是使用一个变量来存储很多数据,而我们的项目中会有很多地方需要大量数据的情况,就比如要从几百个学生信息中找到学号为'12541210'的学生,这时候就需要使用数组了,可以通过数组中元素的下标准确的找到需要的数据。
二、创建一个数组
创建数组常用的两种方法。
1.字面量创建:
let arr = ['Sudy','Judy','Mike'];
2.通过new关键字创建:
let myArr = new Array("Tom",'Nacky','Halun');
这里要注意了,在使用new关键字声明数组的时候,如果是new Array(4),这样写的意思是这个数组的长度为4。
三、如何访问数组数据:
可以通过元素的下标访问(数组的下标从0开始):
let arr = ['张三','李四','王五'];
console.log(arr[1]);
--------
打印出来的结果是:李四。
四、数组的常用方法:
//定义一个数组
let arr = [1,5,9,'张三','hello'];
- push(): 添加
console.log(arr.push(2));
---------
打印出来的结果是长度:6
现在的数组为:[1,5,9,'张三','hello',2]
- pop(): 从后往前删
console.log(arr.pop());
--------
打印出来的结果:hello
现在的数组为:[1,5,9,'张三']
- splice(起始下标(包含),删几个): 删除
console.log(arr.splice(2,1));
-------
打印的结果是:[9]
现在的数组是:[1,5,'张三','hello']
- splice(起始下标(包含),往后数几个,替换成什么): 替换
console.log(arr.splice(2,3,'彩虹'));
--------
打印的结果是:[9,'张三',''hello]
现在的数组为: [1,5,'彩虹']
- splice(在谁之前,0,插入什么): 插入
console.log(arr.splice(1,0,'彩虹'));
-------
现在的数组为:[1,'彩虹',5,9,'张三','hello']
- concat() : 拼接
console.log(arr.concat('world',1551));
-------
打印出来的结果是:[1,5,9,'张三','hello','world',1551]
原数组没有变化
- slice() : 截取
console.log(arr.slice(1,3));
-------
打印的结果是:[5,9]
原数组没有变化
- join(): 拼接 (结果是字符串)
console.log(arr.join('*'));
-------
打印出来的结果是字符串:1*5*9*张三*hello;
原数组没有变化
- reverse(): 翻转
console.log(arr.reverse());
-------
打印出来的结果是:['hello','张三',9,5,1]
原数组没有变化
- sort(): 排序
let myArr = [25,3,15,31,'张三','hello'];
console.log(myArr.sort());
--------
这样打印出来的结果是按照字典顺序排的: [15, 25, 3, 31, 'hello', '张三']
console.log(myArr.sort(function(a,b){
return a-b;
}));
----------
这样打印出来的数组是升序的:[3, 15, 25, 31, '张三', 'hello']
其中,a和b代表数组里面的每一项,如果return b-a, 那么结果就是降序的。
数组去重的小案例
let arr = [1,2,2,2,3,3,4,5,2,3,4,4,2,23,4,5,3,54,3,3,4];
for(let i = 0;i < arr.length;i++){
for (let j = i + 1; j < arr.length; j++) {
if(arr[i] === arr[j]){
arr.splice(j,1);
j--;
}
}
}
document.write(arr,'<br>');