Giter VIP home page Giter VIP logo

addidtoarray's People

Stargazers

 avatar  avatar

Watchers

 avatar

addidtoarray's Issues

Remove `isObject` as dependency

Why?

Because it is the only (not dev.) dependency addIdToArray is using.
This would reduce the installation size from this library.

Todo

Invest a little time into a self-made solution.

Status: v1.2.0

Empty Object and/or Array

Question

Should this behaviour (see examples) be fixed?

Examples

1. addIdToArray([])

addIdToArray([]);
// --> []

2. addIdToArray([{}, {}])

addIdToArray([{}, {}]);
// --> [ { id: 1 }, { id: 2 } ]

3. addIdToArray([[], []])

addIdToArray([[], []]);
// --> [ { id: 1 }, { id: 2 } ]

4. addIdToArray(undefined)

addIdToArray(undefined);
// --> [ { id: 1 } ]

Generated id < 0

Question

Should this behaviour (see examples) be fixed?

Examples

1. parameter.incrementStep = -5

addIdToArray(
  [
    { name: 'Jeff', age: 19 },
    { name: 'Maria', age: 20 },
  ],
  { headers: 'person', incrementStep: -5 }
);
/* --> [
 *   { id: 1, person: { name: 'Jeff', age: 19 } },
 *   { id: -4, person: { name: 'Maria', age: 20 } }
 * ]
 */

Custom id function

Custom id function

Description

Create the ability to give the function a custom function for generating the id value.

Template:

function(item, params) { ... }

Function parameters

item: item in arr
params: Object, infos from the addIdToArray(...)

Example

The value of id is the hash from the item.

const addIdToArray = require('addidtoarray');

const customIdFunction = (item, params) => {
     return {id: hash(item)};
}

addIdToArray(['Jeff', 'Maria'], 'name', customIdFunction);
/*
 * result:
 *          [ { id: 'jsoj23...4ecoe', name: 'Jeff'}, ... ]
 */

Refactor function parameter

The function now looks like:
(arr, headers, start, increment_name, increment_step)

Use something like this:
arr, optional: {headers: ..., ...}

Link

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.