map, filter, reduce and other array methods but for objects
npm install object-fn-tstypescript
const obj = {
a: '1',
b: '2'
}
objectMap(obj, (_, val) => parseInt(val)) // 👉 { a: 1, b: 2 }
`
$3
Signature: \(
object: InputType,
fn: (
key: keyof InputType,
value: any,
index: number,
entries: [string, any][]
) => boolean
) => Partial
Example:
`typescript
const obj = {
a: '1',
b: '2',
c: null
}
objectFilter(obj, (key, val) => key !== 'a' && val !== null && val !== undefined) // 👉 { b: '2 }
`
$3
Signature: \(
object: InputType,
fn: (
previousValue: OutputType,
key: string,
value: any,
index: number,
entries: [string, any][]
) => any,
initialValue: OutputType
) => OutputType
Example:
`typescript
const obj = {
a: 1,
b: 2,
c: 3
}
objectReduce(obj, (prev, key, val) => ({ sum: prev.sum + val }), { sum: 0 }) // 👉 { sum: 6 }
`
$3
Signature: \(
object: InputType,
fn: (
key: keyof InputType,
value: any,
index: number,
entries: [string, any][]
) => boolean
) => boolean
Example:
`typescript
const obj1 = {
a: true,
b: false,
c: false
}
const obj2 = {
a: false,
b: false,
c: false
}
objectSome(obj1, (_, val) => !!val) // 👉 true
objectSome(obj2, (_, val) => !!val) // 👉 false
`
$3
Signature: \(
object: InputType,
fn: (
key: keyof InputType,
value: any,
index: number,
entries: [string, any][]
) => boolean
) => boolean
Example:
`typescript
const obj1 = {
a: true,
b: false,
c: false
}
const obj2 = {
a: false,
b: false,
c: false
}
objectEvery(obj1, (_, val) => !val) // 👉 false
objectEvery(obj2, (_, val) => !val) // 👉 true
`
$3
Signature: (baseObject: object) => number
Example:
`typescript
const obj = {
a: 'a',
b: 'b',
}
const obj2 = {
a: 'a',
b: 'b',
c: 'c'
}
objectLength(obj) // 👉 2
objectLength(obj2) // 👉 3
`
$3
Signature: (val: any) => boolean
Example:
`typescript
const o = {
a: 'a'
}
const a = ['a']
objectIs(o) // 👉 true
objectIs(a) // 👉 false
`
$3
Signature: (o: object) => number
Example:
`typescript
const a = {
a: '1'
}
const b = {
a: {
b: '2'
}
}
objectDepth(a) // 👉 1
objectDepth(b) // 👉 2
`
$3
Signature: (o: object) => any[]
Example:
`typescript
const t = {
a: 'a',
b: {
c: 'c'
}
}
objectDeepEntries(t) // 👉 [ ['a', 'a'], ['b', [ ['c', 'c'] ] ] ]
`
$3
Signature: (arr: any[]) => any
Example:
`typescript
const t = [
['a', 'a'],
['b', [
['c', 'c']
]]
]
fromDeepEntries(t) // 👉 { a: 'a', b: { c: 'c' } }
`
CHANGE LOG
- v3.0.0 | 2023-06-08:
- Types update: use unkown instead of any; properly inver values and entries param for param function when possible; fixing max-depth counter
- v2.1.0 | 2023-01-10 :
- Export objectReduce` fn