class Array {
constructor() {
this.data = [];
}
//数组是否为空
isEmpty() {
return this.data.length == 0;
}
//获得数组元素的个数
getSize() {
return this.data.length;
}
add(index, e) {
if (index < 0 || index >= this.data.length + 1) {
throw new Error("Add Fail Index is illegal.");
}
let size = this.data.length;
for (let i = size - 1; i >= index; i--) {
this.data[i + 1] = this.data[i]
}
this.data[index] = e;
}
addFirst(e) {
this.add(0, e);
}
addLast(e) {
this.add(this.data.length, e);
}
get(index) {
if (index < 0 || index > this.data.length + 1) {
throw new Error("Get failed. Index is illegal.");
}
return this.data[index];
}
//修改索引位置的元素e
set(index, e) {
if (index < 0 || index > this.data.length + 1) {
throw new Error("set failed. Index is illegal.");
}
this.data[index] = e;
}
contains(e) {
for (let i = 0; i < this.data.length; i++) {
if (this.data[i] == e) {
return true;
}
}
return false;
}
//返回元素的索引
find(e) {
for (let i = 0; i < this.data.length; i++) {
if (this.data[i] == e) {
return i;
}
}
return -1;
}
//从数组中删除index位置中的元素 返回该元素
remove(index) {
if (index < 0 || index > this.data.length + 1) {
throw new Error("remove failed. Index is illegal.");
}
let ret = this.data[index];
for (let i = index + 1; i < this.data.length; i++) {
this.data[i - 1] = this.data[i];
}
this.data.length--;
return ret;
}
//从数组中删除某元素
removeElement(e){
let index = this.find(e);
if(index != -1){
this.remove(index);
}
}
toString() {
console.log(this.data);
}
}