ES6语法翻译Lodash计划:数组篇第1期

2020-04-01 17:01:41 浏览数 (1)

计划

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函数

  • 功能:移除数组中的假值
  • 描述:将数组中的假值(undefinednull""0falseNaN)移除,返回由剩余非假值组成的新数组

在线演示

备注:这个应该是最简单的实现方式,没有之一了

结语

这个ES6语法翻译Lodash计划只是我其中一个比较独特的想法,仅供学习交流拓展思维所用,不是什么特别的标准。

如果大家有想法,欢迎在下方评论或者去我掘金博客JowayYoung』对应的沸点下评论喔!贴上你的代码,我们一起学习一起进步!

关注公众号Uzero,更多前端小干货等着你喔!我是JowayYoung,喜欢分享前端技术和生活纪事,学习与生活不落下,每天进步一点点,与大家相伴成长

0 人点赞