Version 1
[yaffs-website] / node_modules / uncss / node_modules / lodash / internal / createAggregator.js
diff --git a/node_modules/uncss/node_modules/lodash/internal/createAggregator.js b/node_modules/uncss/node_modules/lodash/internal/createAggregator.js
new file mode 100644 (file)
index 0000000..3a03091
--- /dev/null
@@ -0,0 +1,35 @@
+var baseEach = require('./baseEach'),
+    baseIteratee = require('./baseIteratee'),
+    isArray = require('../isArray');
+
+/**
+ * Creates a function like `_.groupBy`.
+ *
+ * @private
+ * @param {Function} setter The function to set keys and values of the accumulator object.
+ * @param {Function} [initializer] The function to initialize the accumulator object.
+ * @returns {Function} Returns the new aggregator function.
+ */
+function createAggregator(setter, initializer) {
+  return function(collection, iteratee) {
+    var result = initializer ? initializer() : {};
+    iteratee = baseIteratee(iteratee);
+
+    if (isArray(collection)) {
+      var index = -1,
+          length = collection.length;
+
+      while (++index < length) {
+        var value = collection[index];
+        setter(result, value, iteratee(value), collection);
+      }
+    } else {
+      baseEach(collection, function(value, key, collection) {
+        setter(result, value, iteratee(value), collection);
+      });
+    }
+    return result;
+  };
+}
+
+module.exports = createAggregator;