This solution is generated by ChatGPT, correctness is not guaranteed. You might also be able to find a solution fromcommunity posts.
AI solution for JavaScript Coding Question on BFE.dev
118. Virtual DOM II - createElement
/** * @typedef {Object} MyElement * @property {string} tagName * @property {Object.<string,string>} [props] * @property {(MyElement|string)[]} [children] *//** * @param {string} tagName * @param {Object.<string,string>} [props] * @param {(MyElement|string)[]} [children] * @return {MyElement} */function createElement(tagName, props = {}, ...children) { return { tagName, props, children, }}/** * @param {MyElement} element * @return {HTMLElement|Text} */function renderElement(element) { if (typeof element === 'string') { return document.createTextNode(element) } const { tagName, props, children } = element const htmlElement = document.createElement(tagName) // Assign all props to the HTMLElement for (const [propKey, propValue] of Object.entries(props)) { htmlElement.setAttribute(propKey, propValue) } // Append all the children if (children) { for (const child of children) { htmlElement.appendChild(renderElement(child)) } } return htmlElement}/** * @param {MyElement} element * @param {HTMLElement} container */function render(element, container) { const output = renderElement(element) container.appendChild(output)}