object-transpose
Advanced tools
+4
-11
| sudo: false | ||
| language: node_js | ||
| node_js: | ||
| - '0.10' | ||
| - '0.11' | ||
| - '0.12' | ||
| - '4' | ||
| - '5' | ||
| - '6' | ||
| - 'latest' | ||
| - iojs | ||
| deploy: | ||
| provider: npm | ||
| email: github@tixz.dk | ||
| api_key: | ||
| secure: UkS0lEbczfGWXSuMoooQHj4S+LzWVicAPSELvePFBQWyM/jQa/Z9G9B0eDFd9fMt+xDp27Uh4ucUZmYxRDmjzhxD/7FG6OHo9JYye6y9ZSoo5gM20uRUf/uIHepV5v2RzpOOSK54IXJEyrB/kiw1K/NyRv8ZW3PsQFEf/1ktnG4= | ||
| on: | ||
| tags: true | ||
| repo: emilbayes/object-transpose |
+23
-25
@@ -1,2 +0,3 @@ | ||
| 'use strict'; | ||
| 'use strict' | ||
| /** | ||
@@ -13,36 +14,33 @@ * Transpose an Array of Objects to an Object of Arrays and vice versa | ||
| */ | ||
| module.exports = function transpose (data) { | ||
| if (Array.isArray(data)) return transposeArray(data) | ||
| else return transposeObject(data) | ||
| } | ||
| function transposeObject (data) { | ||
| var res = [] | ||
| var key, i | ||
| module.exports = function transpose(data) { | ||
| if(Array.isArray(data)) | ||
| return transposeArray(data); | ||
| else | ||
| return transposeObject(data); | ||
| }; | ||
| function transposeObject(data) { | ||
| var res = []; | ||
| var key, i; | ||
| for(key in data) | ||
| for (key in data) { | ||
| for (i = 0; i < data[key].length; i++) { | ||
| res[i] = res[i] || {}; | ||
| if(data[key][i] !== undefined) res[i][key] = data[key][i]; | ||
| res[i] = res[i] || {} | ||
| if (data[key][i] !== undefined) res[i][key] = data[key][i] | ||
| } | ||
| } | ||
| return res; | ||
| return res | ||
| } | ||
| function transposeArray(data) { | ||
| var res = {}; | ||
| var i, key; | ||
| function transposeArray (data) { | ||
| var res = {} | ||
| var i, key | ||
| for(i = 0; i < data.length; i++) | ||
| for(key in data[i]) { | ||
| res[key] = res[key] || []; | ||
| res[key][i] = data[i][key]; | ||
| for (i = 0; i < data.length; i++) { | ||
| for (key in data[i]) { | ||
| res[key] = res[key] || [] | ||
| res[key][i] = data[i][key] | ||
| } | ||
| } | ||
| return res; | ||
| return res | ||
| } |
+4
-4
| { | ||
| "name": "object-transpose", | ||
| "version": "2.0.0", | ||
| "version": "2.0.1", | ||
| "description": "Transpose between object of arrays and array of objects", | ||
@@ -8,3 +8,3 @@ "main": "index.js", | ||
| "test": "npm run lint && npm run tape", | ||
| "lint": "eslint --ignore-path .gitignore .", | ||
| "lint": "standard", | ||
| "tape": "tape test.js" | ||
@@ -29,5 +29,5 @@ }, | ||
| "devDependencies": { | ||
| "eslint": "", | ||
| "tape": "^3.0.3" | ||
| "standard": "^8.0.0", | ||
| "tape": "^4.6.0" | ||
| } | ||
| } |
+37
-45
@@ -1,53 +0,45 @@ | ||
| 'use strict'; | ||
| var test = require('tape'); | ||
| var T = require('./index'); | ||
| 'use strict' | ||
| var test = require('tape') | ||
| var T = require('./index') | ||
| var a = [{a: 1, b: 10}, {a: 2, b: 20}]; | ||
| var o = {a: [1, 2], b: [10, 20]}; | ||
| var a = [{a: 1, b: 10}, {a: 2, b: 20}] | ||
| var o = {a: [1, 2], b: [10, 20]} | ||
| test('T(a) === o', function (assert) { | ||
| assert.deepEqual(T(a), o) | ||
| assert.end() | ||
| }) | ||
| test('T(o) === a', function (assert) { | ||
| assert.deepEqual(T(o), a) | ||
| assert.end() | ||
| }) | ||
| test('T(T(a)) === a', function (assert) { | ||
| assert.deepEqual(T(T(a)), a) | ||
| assert.end() | ||
| }) | ||
| test('T(a) === o', function(t) { | ||
| t.plan(1); | ||
| var sparseA = [{a: 1}, {b: 20}] | ||
| var sparseO = {a: [1], b: [, 20]} // eslint-disable-line no-sparse-arrays | ||
| t.deepEqual(T(a), o); | ||
| }); | ||
| test('T(o) === a', function(t) { | ||
| t.plan(1); | ||
| test('T(sparseA) === sparseO', function (assert) { | ||
| assert.deepEqual(T(sparseA), sparseO) | ||
| assert.end() | ||
| }) | ||
| test('T(sparseO) === sparseA', function (assert) { | ||
| assert.deepEqual(T(sparseO), sparseA) | ||
| assert.end() | ||
| }) | ||
| test('T(T(sparseA)) === sparseA', function (assert) { | ||
| assert.deepEqual(T(T(sparseA)), sparseA) | ||
| assert.end() | ||
| }) | ||
| t.deepEqual(T(o), a); | ||
| }); | ||
| test('T(T(a)) === a', function(t) { | ||
| t.plan(1); | ||
| t.deepEqual(T(T(a)), a); | ||
| }); | ||
| var sparseA = [{a: 1}, {b: 20}]; | ||
| var sparseO = {a: [1], b: [, 20]}; | ||
| test('T(sparseA) === sparseO', function(t) { | ||
| t.plan(1); | ||
| t.deepEqual(T(sparseA), sparseO); | ||
| }); | ||
| test('T(sparseO) === sparseA', function(t) { | ||
| t.plan(1); | ||
| t.deepEqual(T(sparseO), sparseA); | ||
| }); | ||
| test('T(T(sparseA)) === sparseA', function(t) { | ||
| t.plan(1); | ||
| t.deepEqual(T(T(sparseA)), sparseA); | ||
| }); | ||
| var zeroAndNullEntries = { | ||
| a: [0, null, 1], | ||
| b: [2, , 3] | ||
| }; | ||
| b: [2, , 3] // eslint-disable-line no-sparse-arrays | ||
| } | ||
| test('T(T(zeroAndNullEntries)) === zeroAndNullEntries', function (t) { | ||
| t.plan(1); | ||
| t.deepEqual(T(T(zeroAndNullEntries)), zeroAndNullEntries); | ||
| }); | ||
| test('T(T(zeroAndNullEntries)) === zeroAndNullEntries', function (assert) { | ||
| assert.deepEqual(T(T(zeroAndNullEntries)), zeroAndNullEntries) | ||
| assert.end() | ||
| }) |
| root = true | ||
| # Unix-style newlines with a newline ending every file | ||
| [*] | ||
| end_of_line = lf | ||
| insert_final_newline = true | ||
| trim_trailing_whitespace = true | ||
| charset = utf-8 | ||
| indent_style = space | ||
| indent_size = 2 |
-19
| --- | ||
| env: | ||
| node: true | ||
| rules: | ||
| quotes: | ||
| - 2 | ||
| - 'single' | ||
| curly: | ||
| - 2 | ||
| - 'multi' | ||
| no-use-before-define: | ||
| - 2 | ||
| - 'nofunc' | ||
| new-cap: | ||
| - 2 | ||
| - capIsNew: false | ||
| no-sparse-arrays: | ||
| - 0 |
3807
-14.14%6
-25%