博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Javascript] Flattening nested arrays: a little exercise in functional refactoring
阅读量:5322 次
发布时间:2019-06-14

本文共 780 字,大约阅读时间需要 2 分钟。

In this lesson we write an imperative function to flatten nested arrays, and then use the popular map, reduce, compose, and pipe functions to transform it into a high-level, point-free, functional implementation.

 

const array = [1, [2, 3], [[4, [5, [6], 7], [8, 9]]]];const concatReducer = (acc, curr) => acc.concat(curr);const map = f => ary => ary.map(f);const reduce = (f, init) => ary => ary.reduce(f, init);const compose = (f, g) => x => f(g(x));const flatten1Element = x => (Array.isArray(x) ? flatten(x) : x);const flattenEachElement = map(flatten1Element);const flattenOneLevel = reduce(concatReducer, []);const flatten = compose(  flattenOneLevel,  flattenEachElement);console.log(flatten(array));//[1,2,3,4,5,6,7,8,9]

 

转载于:https://www.cnblogs.com/Answer1215/p/9636262.html

你可能感兴趣的文章
Linux分区问题
查看>>
封装的ajax
查看>>
WP8 学习 Onnavigatedto和OnnavigatedFrom的区别
查看>>
java中Comparator接口的用法
查看>>
《Effective C#》读书笔记——条目3:推荐使用is或as而不是强制转换类型<C#语言习惯>...
查看>>
开发积累—泛型工具类
查看>>
iOS项目开发实战——制作视图的缩放动画
查看>>
关于在jquery动态修改css,html中,mouseenter,mouseleave,click等方法失效的处理
查看>>
[翻译] java NIO 教程---介绍
查看>>
Java开发小技巧(一)
查看>>
第二天简书
查看>>
iptables 用法
查看>>
MySQL的多表查询(笛卡尔积原理)
查看>>
史上讲得最清楚的树状数组(至少我是这么认为的)
查看>>
POJ 3670 DP LIS?
查看>>
空心菱形的显示
查看>>
简述Oracle IOT(Index Organized Table)
查看>>
Eclipse 常用快捷键清单
查看>>
mysql的配置文件创建相关
查看>>
Indexing GROUP BY
查看>>