ECMAScript(javaScript) 数组操作
数组对象的作用
使用单独的变量名来存储一系列的值。
一、定义一个数组
方法1:Array定义的方法
var arr = new Array(变量名 数字 字符串...):
方法2:字面量定义的方法
var arr = [int,str,bool,{},[]] // 字面量定义数组时 内容可以为任何数据
二、关于数组的长度与位置
1.数组的位置
需要寻找一个数组中的位置时 可以用下标来找到 下标在数组变量的变量名后面加[]加数组的下标
var arr = [1,2,3,4,5,6,7]
console.log(arr[4])
//这里的输出结果为5
注意 :数字的下标是从0开始算
2.数组的长度
在JS中 数组的长度 我们可以使用 length方法来调取一个数组的长度
var arr = [1,2,3,4,5,6,7]
console.log(arr.length)
//输出结果将会是这个数组的长度 这里为7
3.利用数组长度 取出数组中倒数多少位
var arr = [1,2,3,4,5,6,7]
console.log(arr[arr.length-1])
//输出结果位数组中倒数第一位的元素
三、操作数组的方法
1. 添加一个新元素到数组的最后一位
添加一个新元素到数组的最后一位可以使用push方法
var arr = [1,2,3,4,5,6,7];
arr.push("ED","AD");
console.log(arr);
//输出数组时 在最后面新增了需要添加的元素
2. 删除最后一位元素
删除最后一位元素 可以使用pop() 方法
var arr = [1,2,3,4,5,6,7];
arr.pop();
console.log(arr);
console.log(arr.length);
//输出这个数组时 最后一位7不见了 并且长度也少了一位
3. 在数组最前面添加元素
在数组最前面添加元素的方法可以使用unshift()方法
var arr = [1,2,3,4,5,6,7];
arr.unshift("ED","AD");
console.log(arr);
//这里的输出 在这个数组最前面添加了新的元素
4.删除数组最前面一位的元素
删除最前一位的元素的方法是shift 和在最前面添加的方法很像但没有un
var arr = [1,2,3,4,5,6,7];
arr.shift();
console.log(arr);
console.log(arr.length);
//用shift删除数组中最前面一位内容时 同样可以改变数组的长度
5. 合并数组 concat
使用concat 的方法可以合并一个数组 并返回给一个新数组
var arr = [1,2,3,4,5,6,7],
arr_2 = [8,9,0],
newArr;
newArr=arr.concat(arr_2);
console.log(newArr);
console.log(newArr.length);
//↑ concat可以将两个数组合并将值赋予一个新变量
//↓ concat也可以将几个值直接加入一个数组中
var arr = [1,2,3,4,5,6,7],
newArr;
newArr=arr.concat(8,9,0);
console.log(newArr);
console.log(newArr.length);
//上面的例子输出结果一致
6.join 将数值按要求的规则转为字符串
join可以将数组按照一定的规则转为字符串 如果不填写默认每个元素之间是以,隔开 写入空值将以一个空值隔开
<script>
var _arr = [138,1234,4321]; //创建一个数组
var _str0 = _arr.join("-"); //转换数组为字符串 并以-分开
var _str1 = _arr.join(""); //转换数组为字符串 并以一个空分开
console.log(_str0);
console.log(_str1);
/*
*输出为:
*138-1234-4321
*13812344321
***/
</script>
7. reverse 将数组中的元素顺序反转
reverse可以将数字中的元素进行翻转 从最后一位开始排序( 0-n→n-0)
<script>
var arr = [789,456,123];
var newArr = arr.reverse();
console.log(newArr);
/*
* 输出:
*[123,456,789]
***/
</script>
8. sort方法 排序
sort方法可以重新编写一个数组的length 并且不是副本 原始sorf可以按指定要求进行排序 一般我们使用sort函数进行数组的排序 sort()方法有一个可选参数 我们可以按要求排列顺序 如果这个参数为空 那么数组将按照ASCII字符顺序进行排序。
var arr = [1,3,4,2,"a", "b", "A", "B"];
arr.sort();
console.log(arr);
//- ↑ 输出:[1,2,3,4,"A", "B", "a", "b"]
虽然上面的排序看上去没有问题 但是在某种情况 数字的排序又会变成这样
var arr = [11, 3, 222, 4];
arr.sort();
console.log(arr);
//- ↑ 输出结果[11, 222, 3, 4]
这很明显不是我想要的结果 我就想按顺序把数字从大到小排序 这时候我们需要使用sort方法的参数了
var arr = [11, 3, 222, 4];
arr.sort(function(a,b){
return b-a;
});
console.log(arr);
//- ↑ 输出结果[3, 4, 11, 222]
当然同样的道理
var arr = [11, 3, 222, 4];
arr.sort(function(a,b){
return a-b;
});
console.log(arr);
//- ↑ 输出结果[222, 11, 4, 3]
9. indexOf 方法返回首次在数组中出现的位置
var arr = ['a','b','c','d','e','f'];
console.log(arr.indexOf("d"));
// - ↑ 输出: 3
// - ↑ 这里的3是数组的length
10. lastIndexOf 方法返回最后在数组中出现的位置
var arr = ['a','d','c','d','d','f'];
console.log(arr.lastIndexOf("d"));
// - ↑ 输出: 4
// - ↑ 这里的4是数组的length
11. splice 方法进行删除
var arr = ['a','d','c','d','d','f'];
arr.splice(2,1); // ← 第一个参数 为开始下标 第二个参数为结束下标
console.log(arr);
// - ↑ 输出: ["a", "d", "d", "d", "f"]
12. splice方法进行替换 和新增
splice方法不仅可以删除 还可以进行替换和新增 在使用splice添加或替换 可以传入多个值
> 1. 替换方法:
var arr = ['a','d','c','d','d','f'];
arr.splice(2,1,"x"); // ← 第一个参数为开始删除的下标 第二个参数为删除的下标 并从开始的下标删除
console.log(arr);
> 2. 添加方法:
var arr = ['a','d','c','d','d','f'];
arr.splice(2,0,"x","x"); // 结束下标为0 数组不删除 只会添加
console.log(arr);
// - ↑ 输出: ["a","d","x","x","c","d","d","f"]