This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.0 KiB
108 lines
2.0 KiB
"use strict"; |
|
|
|
/* Array utilities. */ |
|
var arrays = { |
|
range: function(start, stop) { |
|
var length = stop - start, |
|
result = new Array(length), |
|
i, j; |
|
|
|
for (i = 0, j = start; i < length; i++, j++) { |
|
result[i] = j; |
|
} |
|
|
|
return result; |
|
}, |
|
|
|
find: function(array, valueOrPredicate) { |
|
var length = array.length, i; |
|
|
|
if (typeof valueOrPredicate === "function") { |
|
for (i = 0; i < length; i++) { |
|
if (valueOrPredicate(array[i])) { |
|
return array[i]; |
|
} |
|
} |
|
} else { |
|
for (i = 0; i < length; i++) { |
|
if (array[i] === valueOrPredicate) { |
|
return array[i]; |
|
} |
|
} |
|
} |
|
}, |
|
|
|
indexOf: function(array, valueOrPredicate) { |
|
var length = array.length, i; |
|
|
|
if (typeof valueOrPredicate === "function") { |
|
for (i = 0; i < length; i++) { |
|
if (valueOrPredicate(array[i])) { |
|
return i; |
|
} |
|
} |
|
} else { |
|
for (i = 0; i < length; i++) { |
|
if (array[i] === valueOrPredicate) { |
|
return i; |
|
} |
|
} |
|
} |
|
|
|
return -1; |
|
}, |
|
|
|
contains: function(array, valueOrPredicate) { |
|
return arrays.indexOf(array, valueOrPredicate) !== -1; |
|
}, |
|
|
|
each: function(array, iterator) { |
|
var length = array.length, i; |
|
|
|
for (i = 0; i < length; i++) { |
|
iterator(array[i], i); |
|
} |
|
}, |
|
|
|
map: function(array, iterator) { |
|
var length = array.length, |
|
result = new Array(length), |
|
i; |
|
|
|
for (i = 0; i < length; i++) { |
|
result[i] = iterator(array[i], i); |
|
} |
|
|
|
return result; |
|
}, |
|
|
|
pluck: function(array, key) { |
|
return arrays.map(array, function (e) { return e[key]; }); |
|
}, |
|
|
|
every: function(array, predicate) { |
|
var length = array.length, i; |
|
|
|
for (i = 0; i < length; i++) { |
|
if (!predicate(array[i])) { |
|
return false; |
|
} |
|
} |
|
|
|
return true; |
|
}, |
|
|
|
some: function(array, predicate) { |
|
var length = array.length, i; |
|
|
|
for (i = 0; i < length; i++) { |
|
if (predicate(array[i])) { |
|
return true; |
|
} |
|
} |
|
|
|
return false; |
|
} |
|
}; |
|
|
|
module.exports = arrays;
|
|
|