Object + Utility
objelity
api
deepKeys(obj)
object内すべてのdeepKey(path)を取得します。
Since
1.0.0
Arguments
Object (Object | Array)
Returns
Array
Example
var _keys obj;obj = a: b: c: 1 2 3 d: e: f: g: 'h' ;objelity;// => ['a.b.c.0', 'a.b.c.1', 'a.b.c.2', 'a.d', 'e.f.g']
obj = name: 'alice' age: 17 name: 'bob' age: 32 name: 'charlie' age: 25 ;objelity;// => ['0.name', '0.age', '1.name', '1.age', '2.name', '2.age']
compactObject(obj)
objectから値がnull
とundefined
の要素を除去します
Since
1.0.0
Arguments
Object (Object | Array)
Returns
Object
Example
var obj;obj = aaa: bbb: ccc: 1 ddd: 0 eee: fff: undefined ggg: null hhh: iii: jjj: true ;objelity;// => aaa: bbb: ccc: 1 ddd: 0 hhh: iii: jjj: true
flattenObject(obj, separator)
objectをflatten(フラット化)します
Since
1.0.0
Arguments
Object (Object | Array)
Returns
Object
Example
var obj;obj = aaa: bbb: ccc: 1 ddd: 0 eee: fff: void 0 ggg: null hhh: iii: jjj: true ;objelity;// => aaa_bbb_ccc: 1 aaa_bbb_ddd: 0 aaa_eee_fff: void 0 aaa_eee_ggg: null aaa_hhh_iii_jjj: true objelity; // => 'aaa-bbb-ccc': 1 'aaa-bbb-ddd': 0 'aaa-eee-fff': void 0 'aaa-eee-ggg': null 'aaa-hhh-iii-jjj': true
eachObject(obj, fn)
objectのすべての要素をイテレートします。
Since
1.0.0
Arguments
Object (Object | Array) callback (val, path, index, object)
Returns
void
Example
var obj;obj = aaa: bbb: ccc: 1 ddd: 2 eee: fff: 3 ggg: 4 ;objelity; // =>1 'aaa.bbb.ccc' 02 'aaa.bbb.ddd' 13 'aaa.eee.fff' 24 'aaa.eee.ggg' 3
mapObject(obj, fn)
objectのすべての要素をイテレートします。
Since
1.0.0
Arguments
Object (Object | Array) callback (val, path, index, object)
Returns
Array
Example
// changing valuesvar obj;obj = aaa: bbb: ccc: 1 ddd: 2 eee: fff: 3 ggg: 4 ;objelity;// => aaa: bbb: ccc: 2 ddd: 4 eee: fff: 6 ggg: 8
// returning arrayvar obj;obj = aaa: bbb: ccc: 1 ddd: 0 eee: fff: void 0 ggg: null ;objelity;// => xxx: ccc: 1 ddd: 0 aaa: eee: fff: void 0 ggg: null )
// returning an objectvar obj;obj = aaa: bbb: ccc: 1 ddd: 0 eee: fff: void 0 ggg: null ;objelity;// => xxx: ccc: 1 ddd: 0 aaa: eee: fff: void 0 ggg: null )
toText(val)
toStringの変形です。objectの場合はJSON.stringify
します。
Since
1.0.0
Arguments
val (any)
Returns
string
Example
objelity;// => The return value is a string// {// "a": 1// } objelity;// => The return value is a string// [// 1,// 2,// 3// ] objelity;// => The return value is a string// (() => {// return true;// })() objelity;// => The return value is a string// 'str' objelity;// => The return value is a string// '123' objelity;// => The return value is a string// 'undefined' objelity;// => The return value is a string// 'null' objelity;// => The return value is a string// 'true' objelity;// => The return value is a string// 'NaN'
filterObject(obj, fn)
objectのすべての要素をイテレートします。 callbackで真の値を返した要素を抽出します。 新しいobjectを返します。
Since
1.0.0
Arguments
Object (Object | Array) callback (val, path, index, object)
Returns
Object
Example
var obj = aaa: bbb: ccc: 1 ddd: 2 eee: fff: 3 ggg: 4 ;objelity;// =>aaa: bbb: ddd: 2 eee: ggg: 4
obj = a: aa: 11 bb: 22 b: 2 c: 3;objelity// => short hand for path 'a' and 'c' a: aa: 11 bb: 22 c: 3objelity// => path 'a.b' is included in 'a.bb' a: bb: 22 c: 3
rejectObject(obj, fn)
objectのすべての要素をイテレートします。 callbackで真の値を返した要素を削除します。 新しいobjectを返します。
Since
1.0.0
Arguments
Object (Object | Array) callback (val, path, index, object)
Returns
Object
Example
var obj = aaa: bbb: ccc: 1 ddd: 2 eee: fff: 3 ggg: 4 ;objelity;// => aaa: bbb: ccc: 1 eee: fff: 3 )
obj = a: aa: 11 bb: 22 b: 2 c: 3;objelity// => short hand for path 'a' b: 2 c: 3objelity// => path 'a.b' is included in 'a.bb' a: aa: 11 b: 2)
stringify(obj, replacer, space)
通常のJSON.stringify
に加えて複数の項目もstringifyします。
Since
1.1.0
Arguments
Object (Any) replacer (fanction (key, value)) space (Number | String)
Returns
String
Example
obj = undefined: void 0 { return true; } { return 0; } RegExp: /foo/ newReg: 'foo' err: 'unknown error' NaN: 0 / 0;JSON;// =>// {// NaN: null,// RegExp: {},// err: {},// newReg: {},// } objelity; // =>// {// NaN: '[object Number] NaN',// RegExp: '[object RegExp] /foo/',// err: '[object Error] Error: unknown error',// function: `(function () {␊// return true;␊// }()`,// generator: `(function* () {␊// return yield 0;␊// }()`,// newReg: '[object RegExp] /foo/',// undefined: '[object Undefined] undefined',}
pickValue(obj, fn)
filterObjectして残った要素の値を1つ返します。 複数の要素が当てはまる場合は最初の要素の値が返ります。 ただしobjectは順番が保証されません。最初の要素が何になるかはわかりません。
Since
1.1.1
Arguments
Object (Object | Array) callback (val, path, index, object)
Returns
Any
Example
var obj = aaa: bbb: ccc: 1 ddd: 2 eee: fff: 3 ggg: 4 ;objelity; // => 1// 条件がすべての要素に当てはまっています。最初のcccがpickされています。 objelity; //=> 2// bbbとgggが条件に合致しています。最初のbbbがpickされています。 objelity; //=> 3// fffとgggが条件に合致しています。最初のfffがpickされています。
pickObject(obj, fn)
filterObjectして残った要素を1つ返します。 複数の要素が当てはまる場合は最初の要素の値が返ります。 ただしobjectは順番が保証されません。最初の要素が何になるかはわかりません。
Since
1.1.1
Arguments
Object (Object | Array) callback (val, path, index, object)
Returns
Object
Example
var obj = aaa: bbb: ccc: 1 ddd: 2 eee: fff: 3 ggg: 4 ;objelity; // => {aaa:{bbb:{ccc:1}}}// 条件がすべての要素に当てはまっています。最初のcccがpickされています。 objelity; //=> {aaa:{bbb:{ddd:2}}}// bbbとgggが条件に合致しています。最初のbbbがpickされています。 objelity; //=> {aaa:{eee:{fff:3}}}// fffとgggが条件に合致しています。最初のfffがpickされています。