行列完成
运用数组来完成行列看起来水到渠成。JavaScript 中的数组具有其他编程语言中没有的长处, 数组的 push()
要领能够在数组末端到场元素,shift()
要领则可删除数组的第一个元素。
push() 要领将它的参数插进去数组中第一个开放的位置,该位置总在数组的末端,即使是个 空数组也是云云。请看下面的例子:
names = [];
name.push("Cynthia"); names.push("Jennifer"); print(names); // 显现 Cynthia,Jennifer
然后运用 shift()
要领删除数组的第一个元素:
names.shift();
预备最先完成 Queue 类,先从组织函数最先:
function Queue() {
this.dataStore = [];
this.enqueue = enqueue;
this.dequeue = dequeue;
this.front = front;
this.back = back;
this.toString = toString;
this.empty = empty;
}
enqueue() 要领向队尾增加一个元素:
function enqueue(element) {
this.dataStore.push(element);
}
dequeue() 要领删除队首的元素:
function dequeue() {
return this.dataStore.shift();
}
能够运用以下要领读取队首和队尾的元素:
function front() {
return this.dataStore[0];
}
function back() {
return this.dataStore[this.dataStore.length-1];
}
还须要 toString() 要领显现行列内的一切元素:
function toString() {
var retStr = "";
for (var i = 0; i < this.dataStore.length; ++i) {
retStr += this.dataStore[i] + "\n";
return retStr;
}
末了,须要一个要领推断行列是不是为空:
function empty() {
if (this.dataStore.length == 0) {
return true;
}
else {
return false;
}
}
代码归结
function Queue() {
this.dataStore = [];
this.enqueue = enqueue;
this.dequeue = dequeue;
this.front = front;
this.back = back;
}
this.toString = toString;
this.empty = empty;
}
function enqueue(element) {
this.dataStore.push(element);
}
function dequeue() {
return this.dataStore.shift();
}
function front() {
return this.dataStore[0];
}
function back() {
return this.dataStore[this.dataStore.length - 1];
}
function toString() {
var retStr = "";
for (var i = 0; i < this.dataStore.length; ++i) {
retStr += this.dataStore[i] + "\n";
}
return retStr;
}
function empty() {
if (this.dataStore.length == 0) {
return true;
} else {
return false;
}
}
后话
固然,学好前端,你还须要关注一个民众号!——逐日前端
列位兄弟姐妹,共勉!