Giter Site home page Giter Site logo

to-obj's Introduction

to-obj

Supersmall array/object to plain old javascript object converter. Compatible with CommonJS / SystemJS / AMD.

Install

npm install --save to-obj

Object from Array

Like Object.assign({}, array):

const arr = ['a', 'b'];
toObj(arr); // { 0: 'a', 1: 'b' }

With value provided:

const arr = ['a', 'b'];
toObj(arr, 'value');    // { a: 'value', b: 'value' }
toObj(arr, undefined);  // { a: undefined, b: undefined }

With values from array:

const arr = ['a', 'b'];
toObj(arr, [1, 2]);     // { a: 1, b: 2 }

With transformer function:

const arr = ['a', 'b'];
const transformer = (value, index) => value + '-' + index;
toObj(arr, transformer); // { a: 'a-0', b: 'b-1' }

Object from athother object

Returns shallow copy of given object:

const obj = { a: 3, b: 4 };
const newObject = toObj(obj);
newObject;       // { a: 3, b: 4 }
obj === newObj;  // false

With value provided:

const obj = { a: 3, b: 4 };
toObj(obj, 'something'); // { a: 'something', b: 'something' }

With transformer function:

const obj = { a: 3, b: 4 };
const transformer = (value, key) => key + '-' + value;
toObj(obj, transformer); // { a: 'a-3', b: 'b-4' }

Also works with object-like values:

const func = function() {};
func.test = 1;
func.t = 2;
toObj(func);       // { test: 1, t: 2 }
toObj(func, null); // { test: null, t: null }

toObj.byKey

If you have array of users:

const users = [
  { id: 111, name: 'bob' },
  { id: 222, name: 'den' },
];

and you want to convert it to dictionary of users by id, just provide key or function returning key:

const toObjById = toObj.byKey((user, index) => user.id);

// Or (shortcut):
const toObjById = toObj.byKey('id');

toObjById(users); // {
                  //   111: { id: 111, name: 'bob' },
                  //   222: { id: 222, name: 'dan' }
                  // }

This works as described before, for example, lets take object of users:

const users = {
  z: { id: 111, name: 'bob' },
  x: { id: 222, name: 'den' },
};

// second argument does the same thing described in “With transformer function”:
toObjById(users, user => user.name); // {
                                     //   111: 'bob',
                                     //   222: 'dan',
                                     // }

to-obj's People

Contributors

andykog avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.