text: "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;
  