bloqhead / jsbasics

A library of reusable approaches for various things in JS.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JS Basics

Objects

Removing values from an object in a non-destructive manner:

const myObject = {
  a: 1,
  b: 2,
  c: 3
};
const { a, ...noA } = myObject;
console.log(noA); // => { b: 2, c: 3 }

Source: codeburst.io

Arrays

Remove duplicate objects from an array based on key:

function removeDupes (array, key) {
  return array.filter((obj, index, self) =>
    index === self.findIndex((el) => (
      el[key] === obj[key]
    ))
  )
}

Usage:

const someArray = [
  { label: 'greeting', value: 'Hello World' },
  { label: 'greeting', value: 'Hey there' },
  { label: 'greeting', value: 'Hello good person!' },
  { label: 'greeting', value: 'Hello World' },
  { label: 'greeting', value: 'Hello World' },
  { label: 'greeting', value: 'Hello World' },
]

removeDupes(someArray, 'value')

The above would return:

[
  {
    label: 'greeting',
    value: 'Hello World'
  },
  {
    label: 'greeting',
    value: 'Hey there'
  },
  {
    label: 'greeting',
    value: 'Hello good person!'
  }
 ]

Source: tutsmake.com

Mixed

Get select keys and values from either an object or an array:

function getSome (original, desired) {
  const cleaned = (original && typeof original === 'object' && original.constructor === Array) 
    ? Object.assign({}, ...original)
    : original

  return desired.reduce((obj, key) => ({ ...obj, [key]: cleaned[key] }), {})
}

About

A library of reusable approaches for various things in JS.