js数据结构实现

js字符串的常用操作

js字符串反转

1
js.split("").reverse().join("");

先进行分割成数组,随后再反转,再进行拼接。

js实现栈

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
//使用js来构造栈
function Stack() {
//items 不用 this的原因,因为new操作符会将构造函数中的this指向生成的对象,
//挂载在this上的方法或者属性将来会成为对象的方法或者属性,所以可以直接调用,而
//items是函数内部的一个局部变量,在函数外部是不可访问的。所以需要通过作用域链的方法来访问item
var items = [];
//类方法
this.push = function (element) {
items.push(element);
}
//pop方法
this.pop = function () {
return items.pop();
}
//数组转化成字符串
this.toString = function () {
return items.toString();
}
//peek方法 返回最后一项
this.peek = function () {
return items[items.length - 1];
}
//长度方法
this.size = function () {
return items.length;
}
//期望item 不为空
this.isEmpty = function () {
return items.length == 0 ? true : false;
}
//清空数组
this.clear = function () {
while (items.length > 0)
items.pop();
}
}

重点:items不用this的原因:
items 不用 this的原因,因为new操作符会将构造函数中的this指向生成的对象,挂载在this上的方法或者属性将来会成为对象的方法或者属性,所以可以直接调用,而items是函数内部的一个局部变量,在函数外部是不可访问的。所以需要通过作用域链的方法来访问item
参考链接