12345678910111213141516171819202122232425262728293031 |
- /**
- * 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;
|