-
Notifications
You must be signed in to change notification settings - Fork 0
/
arrays+.js
68 lines (56 loc) · 1.58 KB
/
arrays+.js
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
64
65
66
67
68
Array.prototype.sum = function(startIndex, endIndex){
if(this.length==0){
return 0;
}
// make indexes valid, > 0, < this.length, start before end, if not, it's 0 and 0
startIndex = startIndex==null ? 0 : startIndex;
endIndex = endIndex==null ? this.length - 1 : endIndex;
startIndex = startIndex>=this.length||startIndex<0||startIndex>endIndex ? 0 : startIndex;
endIndex = endIndex>=this.length||endIndex<0 ? this.length - 1 : endIndex;
var _sum =0;
for (var i = startIndex; i <= endIndex; i++){
var _subLength = this[i].length || 0;
if (_subLength==0){
_sum += parseFloat(this[i]) || 0;
}
else{
_sum += this[i].sum();
}
}
return _sum;
}
Array.prototype.columnSum = function(column, startIndex, endIndex){
var _sum = 0;
// make error traps for start and end index, implement for how far down to start and go to
// set column=0 if column doesn't exist, is too high or too low; otherwise it keeps it's value
column = column==null||column>=this.length||column<0 ? 0 : column;
for (var i = 0; i < this.length; i++){
_sum += parseFloat(this[i][column]) || 0;
}
return _sum;
}
/* *
Array.prototype.indexOf = function (_value){
var ctr = "";
for (var i in this){
if (this[i] === _value) return i;
}
return ctr;
}
*/
Array.prototype.getElementById = function (id){
var ctr = "";
for (var i in this){
if (this[i].id == id) return this[i];
}
return ctr;
}
Array.prototype.removeElement = function(elem){
for (var i=0; i<this.length ;i++){
if (this[i] === elem) {
return this.splice(i,1);
}
}
throw "Element not found in array";
return null;
}