Hello I have this function that looks for nested value 3 levels deep currently
```
  // This handle nested data to be applied to filter option which comes from filterProps.prop values
  // This is currently chained 3 level deep I.E clock.props.children to add more just keep chaineding
  const handleNestFilterProp = (prop: any, item: any, trim?: boolean) => {
    return trim
      ? prop.length === 1
        ? item[prop[0]] && item[prop[0]].trim().length > 0
        : prop.length === 2
        ? item[prop[0]][prop[1]].trim().length > 0
        : prop.length === 3 && item[prop[0]][prop[1]][prop[2]].trim().length > 0
      : prop.length === 1
      ? item[prop[0]] && item[prop[0]]
      : prop.length === 2
      ? item[prop[0]][prop[1]]
      : prop.length === 3 && item[prop[0]][prop[1]][prop[2]];
  };

```

I'm trying to figure out a way to reduce the logic and make it simpler.
I thinking if it would be a good idea to use get from Lodash
https://lodash.com/docs/4.17.15#get



###### UPDATE added lodash get to simplify #######
```
  const handleNestFilterProp = (prop: any, item: any, trim?: boolean) => {
    const L1 = _.get(item, prop[0]);
    const L2 = _.get(item, [prop[0], prop[1]]);
    const L3 = _.get(item, [prop[0], prop[1], prop[2]]);
    return trim
      ? prop.length === 1
        ? L1 && L1.trim().length > 0
        : prop.length === 2
        ? L2 && L2.trim().length > 0
        : prop.length === 3 && L3.trim().length > 0
      : prop.length === 1
      ? L1
      : prop.length === 2
      ? L2
      : prop.length === 3 && L3;
  };
```

###### UPDATE 2 #######
```
  const handleNestFilterProp = (prop: any, item: any, trim?: boolean) => {
    const L1 = _.get(item, prop[0]);
    const L2 = _.get(item, [prop[0], prop[1]]);
    const L3 = _.get(item, [prop[0], prop[1], prop[2]]);
    return prop.length === 1
      ? trim
        ? L1.trim().length > 0
        : L1
      : prop.length === 2
      ? trim
        ? L2.trim().length > 0
        : L2
      : prop.length === 3 && trim
      ? L3.trim().length > 0
      : L3;
  };
```

###### UPDATE 3 #######
```
  const handleNestFilterProp = (prop: any, item: any, trim?: boolean) => {
    const nest = [prop[0], prop[1], prop[2]];
    const L1 = _.get(item, nest.slice(0, 1));
    const L2 = _.get(item, nest.slice(0, 2));
    const L3 = _.get(item, nest);
    return prop.length === 1
      ? trim
        ? L1.trim().length > 0
        : L1
      : prop.length === 2
      ? trim
        ? L2.trim().length > 0
        : L2
      : prop.length === 3 && trim
      ? L3.trim().length > 0
      : L3;
  };
```