计划
ES6语法翻译Lodash计划是本人为自己制定的半年Flag
?。
目的是使用ES6语法实现Lodash的单个函数功能
,每次分享两个Lodash函数的翻译,涉及到Lodash的类型
、字符
、数值
、数组
、对象
、函数
、集合
和工具
?。
使用ES6语法
翻译Lodash
的过程中,有些函数会在ES5语法中存在原型参照,有些比较复杂的函数会翻译成简洁版函数,有些函数可能存在翻译不完整的问题?。
我在自己掘金博客『JowayYoung
』(快点关注哟
)的沸点列表下每天提前更新,然后收集各位大神们在评论下的方案,供大家一起学习!
Chunk函数
- 功能:分割数组
- 描述:将数组分割成多个指定长度的区块,返回由区块组成的新数组
在线演示
代码语言:javascript复制其他大神贡献的方案
function Chunk1(array = [], size = 1) {
return array.length ? [array.slice(0, size), ...Chunk1(array.slice(size), size)] : [];
}
代码语言:javascript复制function Chunk2(array = [], size = 1) {
return array.reduce((t, c) => { t[t.length - 1].length === size ? t.push([c]) : t[t.length - 1].push(c); return t; }, [[]]);
}
代码语言:javascript复制function Chunk3(array = [], size = 1) {
return Array.from({ length: Math.ceil(array.length / size) }, (v, i) => array.slice(i * size, i * size size));
}
代码语言:javascript复制function Chunk4(array = [], size = 1) {
return array.reduce((t, c) => {
const last = t[t.length - 1];
last && last.length < size ? last.push(c) : t.push([c]);
return t;
}, []);
}
备注:大神们都挺厉害的,都是一个嵌套就搞掂,我学到了
Compact函数
- 功能:移除数组中的假值
- 描述:将数组中的假值(
undefined
、null
、""
、0
、false
、NaN
)移除,返回由剩余非假值组成的新数组
在线演示
备注:这个应该是最简单的实现方式,没有之一了
结语
这个ES6语法翻译Lodash计划只是我其中一个比较独特的想法,仅供学习交流
和拓展思维
所用,不是什么特别的标准。
如果大家有想法,欢迎在下方评论或者去我掘金博客『JowayYoung
』对应的沸点下评论喔!贴上你的代码,我们一起学习一起进步!
关注公众号Uzero
,更多前端小干货等着你喔!我是JowayYoung
,喜欢分享前端技术和生活纪事,学习与生活不落下,每天进步一点点,与大家相伴成长