Get Or Else in Javascript

Usage no npm install needed!

<script type="module">
  import getOrElse from '';



Build status dependencies

Simple Get Or Else module written in JavaScript ES5.

Request an object property at a given namespace with a backup value, incase the desired namespace does not yield a result.

Useful if you have an untrustworthy or deeply nested data source. It will probably save you a bit of if, else-ery.

Example ES5

var get = require("get-or-else");

window.a = { x: 4 };

get([ window, 'a.b.c' ], {});
// returns {} as window.a.b.c does not exist, so `else` is used

get([ window, 'a' ], {});
// returns { x: 4 } as window.a does exist, so expected value is returned

Example ES6 Redux

import get from 'get-or-else';

export const name = (state = {}, action = {}) => {
  switch(action.type) {
    case 'SET_FIRSTNAME':
      return {
        firstName: get([ action, '' ], undefined)
      return state;

Example ES6 React

see this repo get-or-else-demo

import React from 'react';
import ReactDOM from 'react-dom';
import get from 'get-or-else';

const nameObj = {
  details: {
    salutation: undefined,
    name: {
      first: 'Margaret'

const NameComponent = () => (
    Welcome {get([ nameObj, 'details.salutation' ], 'back')}
    <span> {get([ nameObj, '' ], '')}</span>
    <span> {get([ nameObj, '' ], '')}</span>

  <NameComponent />,

/* NameComponent Renders `
  Welcome back<span> Margaret</span><span></span>

nameObj.details.salutation does not exist so the backup value is used does not exist so it does not display

NPM Package


Browser compatibility

IE 9 or greater - Array.every on Mozilla's compatibility chart

Run the tests

Given you have Node installed, cd into this folder and:

npm install
npm test