findLine = () => {
const count = getDataLinesCount(json.value, ['special_states','somepath'])
console.log('line on: ', count)
},
getDataLinesCount = (data, path, count = 1) => { // path == null - если в текущем элементе нет искомых ключей
if (typeof data == 'undefined') return count - 1 // в моем редакторе не выводятся эти значения
if (typeof data == 'string' || typeof data == 'number' || typeof data == 'boolean' || !data) return count
if (Array.isArray(data)) data = Object.assign({}, data)
for (let key in data) {
count++
const item = data[key]
if (!path || path[0] != key) {
count = getDataLinesCount(item, null, count)
} else {
if (path.length == 1) return count
else {
path.shift()
return getDataLinesCount(item, path, count)
}
}
}
if (Object.keys(data).length) count++
return count
}