-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy patharray.js
More file actions
63 lines (60 loc) · 1.54 KB
/
array.js
File metadata and controls
63 lines (60 loc) · 1.54 KB
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
60
61
62
63
// Add convienent array methods if non-existant
if (!Array.forEach) {
Array.forEach = function(array, fun, thisp) {
var len = array.length;
for ( var i = 0; i < len; i++) {
if (i in array) {
fun.call(thisp, array[i], i, array);
}
}
};
}
if (!Array.map) {
Array.map = function(array, fun, thisp) {
var len = array.length;
var res = [];
for ( var i = 0; i < len; i++) {
if (i in array) {
res[i] = fun.call(thisp, array[i], i, array);
}
}
return res;
};
}
if (!Array.filter) {
Array.filter = function(array, fun, thisp) {
var len = array.length;
var res = [];
for ( var i = 0; i < len; i++) {
if (i in array) {
var val = array[i];
if (fun.call(thisp, val, i, array)) {
res.push(val);
}
}
}
return res;
};
}
if (!Array.erase) {
Array.erase = function(array, object) {
var erased = false;
var idx = -1;
while( (idx = array.indexOf(object) ) != -1){
array.splice(idx, 1);
erased = true;
}
return erased;
};
}
if (!Array.set) {
Array.set = function(array, offset, value) {
for (var i=0; i < value.length; i++)
array[offset+i] = value[i];
};
}
if (!Array.isArray) {
Array.isArray = function(arg) {
return Object.prototype.toString.call(arg) == '[object Array]';
};
}