get.ts 443 B

123456789101112131415161718
  1. import isString from './is-string';
  2. /**
  3. * https://github.com/developit/dlv/blob/master/index.js
  4. * @param obj
  5. * @param key
  6. * @param defaultValue
  7. */
  8. export default (obj: any, key: string | any[], defaultValue?: any): any => {
  9. let p = 0;
  10. const keyArr = isString(key) ? key.split('.') : key;
  11. while (obj && p < keyArr.length) {
  12. obj = obj[keyArr[p++]];
  13. }
  14. return (obj === undefined || p < keyArr.length) ? defaultValue : obj;
  15. }