0%

理解JavaScript数据结构与算法

提前储备知识

Array.prototy上常用的方法

比较啰嗦,但可以复习一下!~
添加元素:
push() 方法将一个或多个元素添加到数组的末尾,并返回新数组的长度。
unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度。
删除元素:
pop() 方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。
shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
如果在一个空数组上调用pop()或shift(),它返回undefined
在任意位置添加或删除元素:
splice(start,[deleteCount],[itemN]) 方法通过删除现有元素和/或添加新元素来更改一个数组的内容,会直接对数组进行修改。
参数start 指定修改的开始位置(从0计数),如果超出了数组长度,则从数组末尾开始添加内容。如果是负值,则表示从数组末位开始的第几位。如果负数的绝对值大于数组的长度,则表示开始位置为第0位。
deleteCount 可选,整数,表示要移除的数组元素的个数。如果为0则不删除。
itemN 可选,要添加的元素,从start位置开始。如果不指定,则 splice() 将只删除数组元素。

1
2
3
4
let arr = [1,2,3,4];
arr.splice(2,0,'a','b'); // 返回undefined
console.log(arr); // [1,2,'a','b',3,4]
arr.splice(3,2); // ['b',3]

如果是删除则返回被删除的元素组成的数组。
浅拷贝:
slice(start,end) 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。返回新元素数组,且原始数组不会被修改。
参数start为开始索引值(从0计数)如果为负数,则从末尾开始,end为结束的索引值(不包括end),如果省略则一直提取到数组末尾。

1
2
let arr1 = [1,2,3,4,5];
arr1.slice(2,4); // [3,4]

concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
排序元素:
reverse() 方法将数组中元素的位置颠倒,没有参数。第一个数组元素成为最后一个数组元素,最后一个数组元素成为第一个。
sort() 方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。

1
2
3
4
let arr = [1,5,3,4,9];
arr.sort((a,b) => {
return a - b; // 从小到大排序
}); // [1, 3, 4, 5, 9]

迭代器函数:

其他:
join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。
indexOf() 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。