白猪掌柜的
这是一个 JSX 版本。请注意,只有在有子项时才会调用递归调用。 const data = [ { "tag": "div", "children": [ { "tag": "p", "text": "hey", "style": { "color": "red", "fontSize": "12px" } } ] }, { "tag": "div", "text": "Yo" } ];const Elements = ({elements}) => { return ( <React.Fragment> {elements && elements.map(element => { let {tag, text, children, style} = element if(tag === "div") { return( <div style={style ? style: {}}>{text} {children && <Elements elements={children}/>} </div> ) } else if(tag === "p") { return( <p style={style ? style: {}}>{text} {children && <Elements elements={children}/>} </p> ) } })} </React.Fragment>);}function render() { ReactDOM.render(<Elements elements={data} />, document.getElementById("root"));}render();