0.4.124 • Published 1 year ago

objtranspose v0.4.124

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

objtranspose

Transpose arrayOfObject <==> objectOfArray with typescript typed result.

Usage

import objTranspose, { aoj2joa, joa2aoj } from "objtranspose";

const aoj = [
  { a: 1, b: 2, c: null },
  { a: 2, c: 3 },
  { a: 3, c: 4 },
];
const joa = {
  a: [1, 2, 3],
  b: [2, undefined, undefined],
  c: [null, 3, 4],
};

console.log(objTransipose(aoj)); // => joa
console.log(objTranspose(joa)); // => aoj

Test

Test

import { it } from "vitest";
import objTranspose, { aoj2joa, joa2aoj } from "./objTrans";

const aoj = [
  { a: 1, b: 2, c: null },
  { a: undefined, c: 3 },
  { a: 3, c: 4 },
];
const joa = {
  a: [1, undefined, 3],
  b: [2, undefined, undefined],
  c: [null, 3, 4],
};

const throws = () => {
  throw new Error("");
};
const shouldEq = (a, b) => JSON.stringify(a) === JSON.stringify(b) || throws();
//
it("use aoj2joa transpose Array of Object to Object of Array", () => {
  shouldEq(aoj2joa(aoj), joa);
});
it("use joa2aoj transpose Object of Array to Array of Object", () => {
  shouldEq(aoj, joa2aoj(joa));
});
it("use objtranspose transpose Array of Object to Object of Array", () => {
  shouldEq(objTranspose(aoj), joa);
});
it("use objtranspose transpose Object of Array to Array of Object", () => {
  shouldEq(aoj, objTranspose(joa));
});
it("use objtranspose transpose Array of Object twice and get it self", () => {
  shouldEq(objTranspose(objTranspose(aoj)), aoj);
});
it("use objtranspose transpose Object of Array twice and get it self", () => {
  shouldEq(joa, objTranspose(objTranspose(joa)));
});

Test Result

  ✔ use aoj2joa transpose Array of Object to Object of Array
  ✔ use joa2aoj transpose Object of Array to Array of Object
  ✔ use objtranspose transpose Array of Object to Object of Array
  ✔ use objtranspose transpose Object of Array to Array of Object
  ✔ use objtranspose transpose Array of Object twice and get it self
  ✔ use objtranspose transpose Object of Array twice and get it self

  6 passing (17ms)

About

License

GPLv3 - The GNU General Public License v3.0 - GNU Project - Free Software Foundation

Author

Author: snomiao snomiao@gmail.com Website: snomiao.com

Sponsors

  • None yet.

Claim your sponsorship by donating snomiao <Email: snomiao@gmail.com>

Contribute

The main repo is in here, any issue and PR's welcome.

0.4.124

1 year ago

0.4.0

1 year ago

0.0.10

2 years ago

0.2.0

2 years ago

0.1.4

2 years ago

0.1.6

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago