Socket
Socket
Sign inDemoInstall

group-array

Package Overview
Dependencies
Maintainers
2
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

group-array - npm Package Compare versions

Comparing version 0.2.0 to 0.3.0

52

index.js

@@ -13,3 +13,3 @@ /*!

function groupArray(arr, props) {
function groupFn(arr, props) {
if (arr == null) {

@@ -36,3 +36,3 @@ return [];

function groupBy(arr, prop) {
function groupBy(arr, prop, key) {
var len = arr.length, i = -1;

@@ -43,24 +43,20 @@ var groups = {};

var obj = arr[i];
var key;
var val;
// allow a function to modify the object
// and/or return a key to use
// and/or return a val to use
if (typeof prop === 'function') {
key = prop.call(groups, obj);
val = prop.call(groups, obj, key);
} else {
key = get(obj, prop);
val = get(obj, prop);
}
if (typeof key === 'string') {
groups[key] = groups[key] || [];
groups[key].push(obj);
} else if (typeOf(key) === 'object') {
var value = key;
for (var k in value) {
if (value.hasOwnProperty(k)) {
groups[k] = groups[k] || [];
groups[k].push(obj);
}
}
} else if (typeOf(key) === 'function') {
if (typeof val === 'string') {
groups[val] = groups[val] || [];
groups[val].push(obj);
} else if (typeOf(val) === 'object') {
groupObject(groups, obj, val);
} else if (Array.isArray(val)) {
groupArray(groups, obj, val);
} else if (typeOf(val) === 'function') {
throw new Error('group-array expects group keys to be strings, objects or undefined: ' + key);

@@ -72,2 +68,18 @@ }

function groupObject(groups, obj, val) {
for (var k in val) {
if (val.hasOwnProperty(k)) {
groups[k] = groups[k] || [];
groups[k].push(obj);
}
}
}
function groupArray(groups, obj, val) {
val.forEach(function (item) {
groups[item] = groups[item] || [];
groups[item].push(obj);
});
}
function subGroup(groups, prop) {

@@ -80,3 +92,3 @@ for (var key in groups) {

} else {
groups[key] = groupArray(val, prop);
groups[key] = groupBy(val, prop, key);
}

@@ -100,2 +112,2 @@ }

module.exports = groupArray;
module.exports = groupFn;
{
"name": "group-array",
"description": "Group array of objects into lists.",
"version": "0.2.0",
"version": "0.3.0",
"homepage": "https://github.com/doowb/group-array",

@@ -6,0 +6,0 @@ "author": "Brian Woodward (https://github.com/doowb)",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc