写在前面
坚持,记笔记 😀, 加油!
新手小白第一次发博客 😆,当是做笔记啦。记一下学习到的Javascript 数组方法,写的不好各位见谅呀 😬,共同学习进步 😄。
因为数组的方法很多所以本文采用《Javascript 高级程序设计》一书中对数组方法进行的分类,方便查找使用,对了电脑端需要快速查询想要找到的方法的话,可以使用 Ctrl/Command + F 输入想要搜索的方法名来进行查找哦。
一、先介绍数组实例方法
1.1 栈和队列方法
Javascript中这几个方法让数组可以直接作为栈(先进后出 FILO)和队列(先进先出 FIFO)这两种数据结构来使用(关于这两种数据结构可以参见http://c.biancheng.net/data_structure/stack_queue/),
使用push()
和pop()
可以让数组当成栈来使用,而使用shift()
和push()
可以数组当成队列来使用,另外还有一个unshift()
方法(可以配合pop()
模拟反向的队列)。
1.1.1 push()
push()
方法可以接收任意数量的参数,将他们按照参数顺序添加到数组末尾,返回值是添加元素后数组的最新长度length
const array_1 = [1, 2, 3, 4];
console.log(array_1.push(5, 6)); // 6
console.log(array_1); // [ 1, 2, 3, 4, 5, 6 ]
1.1.2 pop()
而pop()
方法执行的是与push()
方法相反的操作,将会删除数组的最后一项并返回该项(同时也length
会减 1)。
const array_2 = [1, 2, 3, 4];
console.log(array_2.pop()); // 4
console.log(array_2); // [ 1, 2, 3 ]
1.1.3 shift()
shift()
方法将会删除数组的第一项并返回该项(同时也length
会减 1)。
const array_3 = [1, 2, 3, 4];
console.log(array_3.shift()); // 1
console.log(array_3); // [ 2, 3, 4 ]
1.1.4 unshift()
另外的unshift()
方法执行的是与shift()
方法相反的操作,该方法可以接收任意数量的参数并按照参数的顺序添加到数组前,方法会返回新的数组长度length
。
const array_4 = [1, 2, 3, 4];
console.log(array_4.unshift(-1, 0)); // 6
console.log(array_4); // [ -1, 0, 1, 2, 3, 4 ]
1.2 归并方法
Javascript中有两个归并方法reduce()
和reduceRight()
这两个方法都会遍历数组的每一项,并有一个最终返回值。
1.2.1 reduce()
这个方法会接受两个参数:
-
第一个参数为针对每一项都会执行的归并方法:
这个方法可以接受四个参数:上一个归并值、当前项、当前项的索引和数组本身,这个函数的返回值将会作为下一次归并时该函数的第一个参数,所以当reduce()
没有接收到可选的第二个参数时,归并将会从数组的第二项开始, -
第二个参数为可选的以其为起点的初始值。
可以使用reduce()
方法轻松执行数组求和的操作:
const array_1 = [1, 2, 3, 4];
console.log(array_1.reduce((prev, cur, index, array) => prev + cur)); // 10
1.2.2 reduceRight()
而reduceRight()
方法的操作与reduce()
方法相同,只是遍历元素的方向是从最后一项到第一项而已,其余的没有任何区别。
const array_1 = [1, 2, 3, 4];
console.log(array_1.reduceRight((prev, cur, index, array) => prev + cur)); // 10
1.3 排序方法
sort()
和reverse()
都会返回调用它们的数组的引用,即此方法会改变原数组
1.3.1 sort()
sort()
方法可以接收一个可选的比较函数,用于判断哪个值应该被排在前面。这个比较函数接受两个参数,如果第一个参数想要被排在前面就返回一个负值,反之则返回一个正值。
const array_2 = [3, 1, 4, 2];
const compare = (a, b) => a - b; // 比较函数
array_2.sort(compare);
console.log(array_2); // [ 1, 2, 3, 4 ]
1.3.2 reverse()
reverse()
方法会将调用它的数组元素反向逆序排列。
const array_1