Skip to content

invertBy

INFO

この関数は互換性のために es-toolkit/compat からのみインポートできます。代替可能なネイティブ JavaScript API があるか、まだ十分に最適化されていないためです。

es-toolkit/compat からこの関数をインポートすると、lodash と完全に同じように動作します。

与えられたオブジェクトのキーと値を invert 関数のように反転させた新しいオブジェクトを生成します。

値がどのようにキーに反転されるかを iteratee 関数で指定します。iteratee 関数が与えられない場合、値はそのままキーとして使用されます。

新しいオブジェクトの値は、iteratee 関数が返した値が同じキーの配列になります。

インターフェース

typescript
function invertBy<K extends PropertyKey, V>(object: Record<K, V>, iteratee?: (value: V) => string): Record<string, K[]>;

パラメータ

  • object (Record<K, V>): 反転するオブジェクト。
  • iteratee ((value: V) => string): オブジェクトのキーとして反転される値を別の文字列に変換する方法を指定する関数。提供されない場合、値はそのままキーとして反転されます。

戻り値

(Record<string, K[]>): キーと値が反転したオブジェクト。キーは iteratee 関数で変換された値になり、値は iteratee 関数が返した値が同じキーの配列です。

typescript
const obj = { a: 1, b: 2, c: 1 };
const result = invertBy(obj);
// result => { '1': ['a', 'c'], '2': ['b'] }

const obj = { a: 1, b: 2, c: 1 };
const result = invertBy(obj, value => `group${value}`);
// result => { 'group1': ['a', 'c'], 'group2': ['b'] }

MIT ライセンスの下で配布されています。