diff --git a/src/react/ReactChildren.js b/src/react/ReactChildren.js index bbc07d81edaad3705a3dca0942e1cbc01bff2624..86c1339593b92f39763cf2d214cc7fb13d8455b2 100644 --- a/src/react/ReactChildren.js +++ b/src/react/ReactChildren.js @@ -1,6 +1,20 @@ function mapChildren(children, func, context) { - //TODO实现此mapChildren方法 - return children; + const mapedChildren = flatten(children) + const finalChildren = flatten(mapedChildren.map(func)); + return finalChildren; +} + +function flatten(children) { + const flattenedChildren = []; + children.forEach((item, index) => { + if (item instanceof Array ) { + const temp = flatten(item); + flattenedChildren.push(...temp); + } else { + flattenedChildren.push(item) + } + }) + return flattenedChildren; } export {