UNPKG

e-lado

Version:

[![CircleCI](https://circleci.com/gh/sharetribe/sharetribe/tree/master.svg?style=svg)](https://circleci.com/gh/sharetribe/sharetribe/tree/master) [![Dependency Status](https://gemnasium.com/sharetribe/sharetribe.png)](https://gemnasium.com/sharetribe/shar

31 lines (27 loc) 849 B
/** * Copyright 2015-present Facebook. All Rights Reserved. * * @providesModule partitionObject * @typechecks * @flow */ 'use strict'; var forEachObject = require('./forEachObject'); /** * Partitions an object given a predicate. All elements satisfying the predicate * are part of the first returned object, and all elements that don't are in the * second. */ function partitionObject<Tv>(object: { [key: string]: Tv }, callback: (value: Tv, key: string, object: { [key: string]: Tv }) => boolean, context?: any): [{ [key: string]: Tv }, { [key: string]: Tv }] { var first = {}; var second = {}; forEachObject(object, (value, key) => { if (callback.call(context, value, key, object)) { first[key] = value; } else { second[key] = value; } }); return [first, second]; } module.exports = partitionObject;