diff --git a/src/index.js b/src/index.js index 82433470761e01cd6adcfe1e06535ee1819bc83b..94a23a7f9f462e8b9c82403cc4c992dbbd7781e0 100644 --- a/src/index.js +++ b/src/index.js @@ -3,7 +3,7 @@ import React, { Component } from './react'; import ReactDOM from 'react-dom'; class Child extends Component { render() { - console.log(this.props.children); + console.log(this.props,React); const mappedChildren = React.Children.map( this.props.children, (item, index) => ( diff --git a/src/react/ReactChildren.js b/src/react/ReactChildren.js index bbc07d81edaad3705a3dca0942e1cbc01bff2624..b21e849227db984556924666389573f1e4e05129 100644 --- a/src/react/ReactChildren.js +++ b/src/react/ReactChildren.js @@ -1,8 +1,21 @@ function mapChildren(children, func, context) { //TODO实现此mapChildren方法 - return children; + let value, + childrenMap=[] + children.forEach((item,index)=> { + value= (Array.isArray(item)?recursionAry(item,index,func):func(item,index)) + childrenMap.push(...(Array.isArray(value)?value:"")) + }) + return childrenMap; } - +function recursionAry(item,index,func){ + let result = [] + item.forEach((r,i)=>{ + result.push(...(Array.isArray(r)?recursionAry(r,i,func):func(r,index+i))) + }) + return result +} +//2020/04/07 冯更更 childrenMap export { mapChildren as map, }; \ No newline at end of file