"use strict"; /* Array utilities. */ let arrays = { range: function(start, stop) { let 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) { let 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) { let 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; } }; module.exports = arrays;