dodd0ro
6/14/2018 - 10:52 AM

Create HTML list from js object

function createListFromObject(data) {
  let str = JSON.stringify( data );
  let result = document.createElement('div');
  result.innerHTML = str.replace(/{"/g, '<ul><li>')
                        .replace(/,"/g, '<li>')
                        .replace(/":{}/g, '</li>')
                        .replace(/}/g, '</ul>')
                        .replace(/":/g, '');
  return result.firstChild;
}
function createListFromObject(obj) {
  let newList = document.createElement('ul');

  (function recursionList(parentElement, obj) {
    for (let key in obj) {
      let newItem = document.createElement('li');
      newItem.appendChild(document.createTextNode(key));
      parentElement.appendChild(newItem);

      let subObj = obj[key];
      if (Object.keys(subObj).length) {
        let subParent = newItem.appendChild(document.createElement('ul'));
        recursionList(subParent, subObj);
      }
    }
  })(newList, obj);

  return newList;
};