diff --git a/src/react/ReactChildren.js b/src/react/ReactChildren.js index bbc07d81edaad3705a3dca0942e1cbc01bff2624..bfedb03e769e5b5e95e0b1ca48fe504a612f03cd 100644 --- a/src/react/ReactChildren.js +++ b/src/react/ReactChildren.js @@ -1,8 +1,29 @@ function mapChildren(children, func, context) { //TODO实现此mapChildren方法 + if (children == null) return children + + if(Array.isArray(children)) { + children = map(children) + } return children; } +function map(children, func) { + let arr = [] + if (!Array.isArray(children)) { + return func(children,0) + } + children.map((item, index) => { + if (Array.isArray(item)) { + arr.push(...item.map(subItem => func(subItem, index))) + } else { + arr.push(func(item,index)) + } + }) + return arr + +} + export { mapChildren as map, }; \ No newline at end of file