JSFiddle - React, Tailwind, and code Playground
by prozoroff
JavaScript
const obj = {'a': 1, 'b': 2, 'c': {'d': 3, 'e': [4,5]}};
//["a", "b", "c_d", "c_e_0", "c_e_1"]
const keysFlatten = (obj, key, arr) => {
const keys = Object.keys(obj),
objArr = arr || [];
if(!keys.length){
key && arr.push(key);
return objArr;
}
for(let i = 0, l = keys.length; i < l; i++){
const newKey = keys[i],
prefix = key ? key + '.' : '';
keysFlatten(obj[newKey], prefix + newKey, objArr)
}
return objArr;
}
alert(keysFlatten(obj));