@gocodingnow/rn-native-base-boilerplate
Version:
React Native + Native Base Boilerplate
21 lines (17 loc) • 525 B
text/typescript
const deepMap = (obj: any, fn: any): any => {
const deepMapper = (val: any) => (isObject(val) ? deepMap(val, fn) : fn(val))
if (Array.isArray(obj)) {
return obj.map(deepMapper)
}
if (isObject(obj)) {
return mapObject(obj, deepMapper)
}
return obj
}
const mapObject = (obj: any, fn: any): any =>
Object.keys(obj).reduce((res: any, key: string) => {
res[key] = fn(obj[key])
return res
}, {})
const isObject = (myVar: any): boolean => myVar && typeof myVar === 'object'
export default deepMap