第三章(列表)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>实现列表类</title>
</head>
<body>
<script>
function List(){
this.listSize=0;//列表元素个数
this.pos=0;//列表当前位置
this.dataStore=[];//初始化一个空数组来保存列表元素
this.clear=clear;//清空列表中所有元素
this.find=find;//在列表中原宿查找某一元素
this.toString=toString;//显示列表中的元素
this.insert=insert;//插入元素
this.append=append;//在末尾追加元素
this.remove=remove;//从列表删除元素
this.front=front;//移动到第一元素
this.end=end;//移动到最后一个元素
this.prev=prev;//元素前移一位
this.next=next;//元素后移一位
this.length=length;//列表长度
this.currPos=currPos;//返回当前元素的位置
this.moveTo=moveTo;//移动到指定位置
this.getElement=getElement;//返回当前位置的元素
this.length=length;
this.contains=contains;
}
function append(element){//追加一个新的元素在列表里
this.dataStore[this.listSize++]=element;
}
function find(element){//在列表中查找某一元素
for(var i=0;i<this.datastore.length;i++){
if(this.dataStore[i]==element){
return i;
}
}
return -1;
}
function remove(element){//删 除某个元素
var foundAt=this.find(element);
if(foundAt>-1){
this.dataStore.splice(foundAt,1);
--this.listSize;
return true;
}
return false;
}
function insert(element,after){
var insertPos=this.find(after);
if(insertPos>-1){
this.dataStore.splice(insertPos+1,0,element);
++this.listSize;
return true;
}
return false;
}
function length(){
return this.listSize;
}
function clear(){//清除列表中的所有元素
delete this.dataStore;
this.dataStore=[];
this.listSize=this.pos=0;
}
function contains(element){
for(var i=0;i<this.dataStore.length;i++){//判断列表中是否存在某个值
if(this.dataStore[i]==element){
return true;
}
}
return false;
}
//遍历列表
function front(){
this.pos=0;
}
function end(){
this.pos=this.listSize-1;
}
function prev(){
if(this.pos > 0){
--this.pos;
}
}
function next(){
if(this.pos < this.listSize){
++this.pos;
}
}
function currPos(){
return this.pos;
}
function moveTo(position){
this.pos=position;
}
function getElement(){
return this.dataStore[this.pos];
}
function createArr(file){
var arr=read(file).split("\n");
for(var i=0;i<arr.length;i++){
arr[i]=arr[i].trim();
}
return arr;
}
function Customer(name,movie){
this.name=name;
this.movie=movie;
}
function displatList(list){
for(list.front();list.currPos()<list.length()-1;list.next()){
if(list.getElement() instanceof Customer){
console.log(list.getElement()['name']+","+list.getElement()['movie']);
}
else{
console.log(list.getElement());
}
}
}
function checkOut(name,movie,filmList,customerList){
if(moveList.contains(movie)){
var c=new Customer(name,movie);
customerList.append(c);
filmList.remove(c);
}
else{
console.log(movie+" is not avaliable");
}
}
var names=new List();
names.append('Cyssa1');
names.append('Cyssa2');
names.append('Cyssa3');
names.append('Cyssa4');
names.append('Cyssa5');
names.append('Cyssa6');
console.log(names.length());
for(names.front();names.currPos()<names.length();names.next()){
console.log(names.getElement());
}
</script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值