-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathinterface_completejavascript.com.js
More file actions
59 lines (50 loc) · 1015 Bytes
/
interface_completejavascript.com.js
File metadata and controls
59 lines (50 loc) · 1015 Bytes
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function ArraySeq(_array){
var array = _array.slice();
var start = 0;
var end = array.length - 1;
this.isEmpty = function(){
return end < start;
}
this.get = function(idx){
if(idx >= start && idx <= end)
return array[idx];
else
return "Index invalid!";
}
this.indexOfTail = function(){
return end;
}
}
function RangeSeq(_st, _ed){
var base = _st;
var start = 0;
var end = _ed - _st;
this.isEmpty = function(){
return end < start;
}
this.get = function(idx){
if(idx >= start && idx <= end)
return idx + base;
else
return "Index invalid!";
}
this.indexOfTail = function(){
return end;
}
}
function logFive(seq){
if(!seq.isEmpty()){
var cnt = 0;
var idx = 0;
while(true){
console.log(seq.get(idx));
cnt++;
if(cnt == 5 || idx == seq.indexOfTail()) break;
idx++;
}
}
}
// test
logFive(new ArraySeq([1, 2]));
console.log("---------------");
logFive(new RangeSeq(100, 1000));