如何使用ramda.js让这段代码可读性最高
const isObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]';
function toArray1(children) {
const ret = children.reduce(
(acc, cur) => {
if (cur === null) return acc;
if (Array.isArray(cur)) {
acc = acc.concat(toArray1(cur));
} else if (isObject(cur) && cur.props) {
acc = acc.concat(toArray1(cur.props.children));
} else {
acc.push(cur);
}
return acc;
},
[]
);
return ret;
}
const children = [
1,
null,
[2, 3],
{
props: {
children: [4, 5]
}
}
];
const ret = toArray1(children);
console.log(ret);
输出结果:[1, 2, 3, 4, 5]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这样你看可以嘛?
等待函数式玩的熟悉的同学指导一二呀
经过各种尝试现在改成:
如何在这里面使用递归还没研究出来
有研究的更深入的大佬,再给指导指导呀