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));