数组对于很多学习js的小伙伴来说,肯定是一个非常常用的东西,今天带大家来学习数组的相关内容。
数组的基本使用
数组用于存放多个数据,每个数据都有唯一的下标(不限任何类型)。
创建一个数组
- [数据,数据,数据,…]
- new Array(长度)
// 空数组
var arr = [];
var arr1 = new Array();
// 创建一个长度为10的空数组
var arr2 = new Array(10);
// 创建一个数组,存储字符串10
var arr3 = new Array('10');
对数组的操作
添加数组项
1- arr[长度] = 数据 ; 在数组末尾添加一个数据
2- arr.push(数据 …): 在数组末尾添加一个或多个数据 ,返回数组的长度
3- arr.unshift(数据 …):向数组起始位置添加一个数据,会导致数组每一项的下标向后移动
4- arr.splice(下标, 0, 添加的数据):从指定下标位置开始,删除0个,然后再该位置插入添加的数据,如果下标超过范围,则按照范围的边界进行处理
var arr = [1, 2, 3];
arr[arr.length] = 10;
//在数组末尾添加一个数据
var result = arr.push('abc', 10, 50, true);
//在数组后面添加'abc', 10, 50, true
console.log(result); //8
result = arr.unshift('eee');
//向数组起始位置添加一个'eee'
arr.splice(2, 0, 'a', 'b');
console.log(arr);
// 在arr数组下标为2的位置开始添加数据
删除数据
1- arr.pop();删除数组的最后一项,该表达式返回最后一项的数据
2- arr.shift(); 删除数组的第一项,该表达式返回第一项的数据
3- delete arr[下标] 这种做法会导致产生稀松数组,数组的下标不会更新
4- arr.splice(下标, 删除的数量, 添加的数据):从指定下标位置开始,删除指定数量,然后再该位置插入添加的数据,如果下标超过范围,则按照范围的边界进行处理。返回一个新数组,该数组记录被删除的数据。
// 0 1 2 3 4 5 6 7
var arr = ["eee", "a", "b", 1, 2, 3, 10, "abc"];
var result = arr.pop();
console.log(result, arr);
//删除数组的最后一项
result = arr.shift();
console.log(result, arr);
//删除数组的第一项
result = arr.splice(2, 3, 'c');
console.log(result, arr);
//从下标2开始删除三个数据 讲其内容替换为'c'
截取
arr.slice(起始位置下标, 结束位置下标):将起始位置到结束位置之间的数据拿出来,得到一个新的数组
该函数不会改变原数组,结束下标取不到
- 下标可以写负数,如果是负数,则从数组的末尾开始计算
- 如果不写下标,则copy一份原数组的数据
- 如果不写结束下标,则直接截取到末尾
// 0 1 2 3 4 5 6 7
var arr = ["eee", "a", "b", 1, 2, 3, 10, "abc"];
var result = arr.slice(3, 7);
console.log(result, arr);
// 将下标从3开始到7之间的数据拿出来 得到一个新数组
//能取到3 不能取到7
清空数组
1 arr.splice(0, arr.length);
2 arr.length = 0
查找数组中的某一项
1- arr.indexOf(数据) 从数组中依次查找对应的数据,找到第一个匹配的下标,返回;如果没有找到,则返回 - 1
2- arr.lastIndexOf(数据) 从数组中最后查找对应的数据,找到第一个匹配的下标,返回;如果没有找到,则返回 - 1
3- includes (数据内容 ,下标n) 从下标n开始找数组内容
// 0 1 2 3 4 5 6 7
var arr = ['a', 'b', 1, 2, 3, 1, 'a', '3'];
var index = arr.indexOf('a');
console.log(index); //0
//正序寻找数组中的第一个'a' 找到则返回其下标
console.log(arr.lastIndexOf('a')); //6
//倒序寻找数组中的第一个'a' 找到则返回其下标
今天对于数组的介绍就到此结束啦,我们下次再见。