Total Complexity | 3 |
Complexity/F | 3 |
Lines of Code | 20 |
Function Count | 1 |
Duplicated Lines | 0 |
Ratio | 0 % |
Coverage | 100% |
Changes | 0 |
1 | export default function getByKey(original, key, defaultValue) { |
||
2 | 3 | const keys = key.split('.'); |
|
3 | |||
4 | 3 | let reference = original; |
|
5 | |||
6 | 3 | while (keys.length > 0) { |
|
7 | 4 | const referenceKey = keys.shift(); |
|
8 | |||
9 | 4 | if ( |
|
10 | reference === null || |
||
11 | reference === undefined || |
||
12 | !Object.prototype.hasOwnProperty.call(reference, referenceKey) |
||
13 | ) { |
||
14 | 2 | return defaultValue; |
|
15 | } |
||
16 | 2 | reference = reference[referenceKey]; |
|
17 | } |
||
18 | |||
19 | 1 | return reference; |
|
20 | } |
||
21 |