Utility TypeScript @ 2.0.0-beta.5
    Preparing search index...

    Function arrayUnique

    • Uses Array.filter to create a unique array.

      Filters out any item that is not the first instance of that item in the array.

      Type Parameters

      • T_ArrayItem

        Array item type.

      Parameters

      Returns T_ArrayItem[]

      Unique array.

      export function arrayUnique<T_ArrayItem>(
      arr: T_ArrayItem[],
      args: Partial<arrayUnique.Args> = {},
      ): T_ArrayItem[] {

      // returns
      if ( !Array.isArray( arr ) ) { return arr; }

      const {
      compareViaJson = false,
      } = args;

      // returns
      if ( !compareViaJson ) {
      return [ ...arr ].filter( ( v, i, a ) => a.indexOf( v ) === i );
      }

      const stringify = ( value: any ) => JSON.stringify(
      typeof value === 'object'
      ? Array.isArray( value )
      ? value.sort()
      : objectKeySort( JSON.parse( JSON.stringify( value ) ) )
      : value
      );

      const jsonArr = [ ...arr ].map( stringify );

      return [ ...arr ].filter( ( v, i ) => jsonArr.indexOf( stringify( v ) ) === i );
      }

      0.1.0

      2.0.0-beta.3 — Added optional args param.