数组和它的方法们

本文共 566 字 预计花费 2 分钟

认识一下数组和它的朋友们

全家福

总体上可将方法分为两大类: 改变原数组(mutator methods)不变原数组(accessor methods)

Mutator methods

  • copyWithin: 复制指定位置的元素到指定位置,返回修改过后的数组

  • fill 用指定元素替换指定位置元素, 返回修改过后的数组

  • pop 移除最后一个元素,并返回它

  • push 数组尾部追加新元素,返回修改过后的数组

  • reverse 反转数组,返回修改过后的数组

  • shift 移除头部第一个元素,并返回它

  • sort 默认按照 Unicode code points 对数组排序,并返回

  • splice 从制定位置移除/增加指定位数的元素

  • unshift 在头部添加指定元素

Accessor methods

  • concat 合并两个数组

  • includes 判断数组是否含有指定元素,返回 ture / false

  • indexof 返回指定元素的索引

  • join 将数组/类数组(具有 length 属性)拼接为字符串并返回

  • lastindexof 返回指定元素最后一次出现的索引

  • slice 挑选出指定 起始-结束 的数组元素,返回由其组成的新数组

  • toSource (非标准)

  • tostring

  • tolocalestring

如何记忆 push pop shift unshift

个人总是记不住这四个方法的对应关系,直到看了 JS 高级编程指南将它们又细分为 栈方法 队列方法

栈方法 模仿栈的行为 LIFO(Last In Firest Out)

push() + pop() 实现

2-1

队列方法 模仿栈的行 FIFO(First In First Out)

shift() + push() 正向操作队列

unshift() + pop() 反向操作队列

2-2

利用数组实现队列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function Queue() {
this.que = new Array();
}

Queue.prototype = {
// 尾部插入元素
enqueue: function(ele) {
this.que.push(ele);
},

// 头部取出元素
dequeue: function() {
if (!this.que.empty()) this.que.shift();
},

// 判断队列是否为空
empty: function() {
if (this.length === 0) return true;
else return false;
},

// 查看队首元素
front: function() {
if (!this.que.empty()) return this.que[0];
},

// 查看队尾元素
back: function() {
if (!this.que.empty()) return this.que[length - 1];
},

// 查看所有元素
toString: function() {
return this.que.join(' ');
},

// 清空队列
clear: function() {
this.que.length = 0;
}
}

var a = new Queue();

a.enqueue(1)

Copyright © 2017 - 2018 空脑壳 All Rights Reserved.

冀ICP备17022284号