改变原数组的方法
let a = [1,2,3]; ES5: a.splice()/ a.sort() / a.pop()/ a.shift()/ a.unshift()/ a.reverse()/ a.push()添加数组
ES6: a.copyWithin() / a.fill(不常用)
1.splice用于给数组删除/添加元素
定义: splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目
语法: array.splice(index,howmany,item1,.....,itemX)
参数:
- index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
- howmany:可选。要删除的项目数量。如果设置为 0,则不会删除项目。
- item1, ..., itemX: 可选。向数组添加的新项目。
返回值: 如果有元素被删除,返回包含被删除项目的新数组。
let a = [1, 2, 3, 4, 5, 6, 7]; let item = a.splice(0, 3); // [1,2,3] // 删除 console.log(item) [4, 5, 6, 7] let item = a.splice(0, 3,8); // [1,2,3] // 删除后添加 console.log(item) [8, 4, 5, 6, 7] let item = a.splice(0, 0,8); // [1,2,3] // 添加 console.log(item) [8, 1, 2, 3, 4, 5, 6, 7]
2.sort() 数组排序
var array = [10, 1, 3, 4,20,4,25,8]; // 升序 a-b < 0 a将排到b的前面,按照a的大小来排序的 // 比如被减数a是10,减数是20 10-20 < 0 被减数a(10)在减数b(20)前面 array.sort(function(a,b){ return a-b; }); console.log(array); // [1,3,4,4,8,10,20,25]; // 降序 被减数和减数调换了 20-10>0 被减数b(20)在减数a(10)的前面 array.sort(function(a,b){ return b-a; }); console.log(array); // [25,20,10,8,4,4,3,1]; // 同理json数组可以根据里边的属性值来进行操作
3.pop() 删除一个数组中的最后的一个元素
let a = [1,2,3]; let item = a.pop(); // 3 console.log(a); // [1,2]
4.shift() 删除数组的第一个元素
let a = [1,2,3]; let item = a.shift(); // 1 console.log(a); // [2,3]
5.unshift()向数组开头添加一个或多个元素
let a = [1,2,3]; let item = a.unshift('开头'); // 4 console.log(a); // ['开头',1,2,3]
6.reverse() 颠倒数组中元素的顺序
let a = [1,2,3]; a.reverse(); console.log(a); // [3,2,1]
7.fill() 填充数组
定义: 使用给定值,填充一个数组。
参数:
第一个元素(必须): 要填充数组的值
第二个元素(可选): 填充的开始位置,默认值为0
第三个元素(可选):填充的结束位置,默认是为this.length
['a', 'b', 'c'].fill(7) // [7, 7, 7] ['a', 'b', 'c'].fill(7, 1, 2) // ['a', 7, 'c']