简介
数组、拆分
根据条件将数组分成两个集合。
// 该源码来自于 https://30secondsofcode.org const bifurcateBy = (arr, fn) => arr.reduce((acc, val, i) => (acc[fn(val, i) ? 0 : 1].push(val), acc), [[], []])代码分析
这个代码主要是利用了 Array.prototype.reduce 和 Array.prototype.push,一边遍历一边进行归集。其中巧妙之处是一个逗号表达式来在对 acc 进行操作后并返回 acc的值。下面举一个简单的例子:
let acc = [] let pushed = (acc.push(2), acc) // 输出 [2] console.log(pushed)使用场景
将及格和不及格成绩的同学进行分组,当然也可以用 Array.prototype.filter 直接获得及格和不及格成绩。
const CUT_OFF_SCORES = 60 const students = [ { name: "xiaoer", score: 80 }, { name: "xiaosi", score: 90 }, { name: "menty", score: 50 }, ] const group = bifurcateBy(students, (student) => student.score >= CUT_OFF_SCORES)相似代码
根据条件数组来对原数组进行分类,例如 bifurcate(["beep", "boop"], [true, false])。
// 该源码来自于 https://30secondsofcode.org const bifurcate = (arr, filter) => arr.reduce((acc, val, i) => (acc[filter[i] ? 0 : 1].push(val), acc), [[], []])一起成长
在困惑的城市里总少不了并肩同行的 伙伴 让我们一起成长。
如果您想让更多人看到文章可以点个 点赞。
如果您想激励小二可以到 Github 给个 小星星。
如果您想与小二更多交流添加微信 m353839115。
本文原稿来自 PushMeTop
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/102493.html
showImg(https://segmentfault.com/img/remote/1460000018770987?w=900&h=500); 简介 数组、every、any 判断一个数组中是否都满足特定的条件,如果满足则返回 true 否则返回 false。 // 该源码来自于 https://30secondsofcode.org const all = (arr, fn = Boole...
简介 数组、差集、函数 根据给出的函数找出两个数组中的差集。 const differenceBy = (a, b, fn) => { const s = new Set(b.map(fn)); return a.filter(el => !s.has(fn(el))); }; 代码分析 这段代码使用了ES2015中定义的 Set 对象。Set 对象的值的特点是不含有重复的值,这个特性可以...
showImg(https://segmentfault.com/img/remote/1460000018734296?w=900&h=500); 简介 可读性、性能、Spread、Reduce 在 优雅三连击 中有同学提到了 可读性 这个关键词,就小二个人的观点 在某个范围内使用比较常用到的小技巧,可以提升一定的可读性,文中提到的短路运算在初始化变量是提升可读性的,并且在很多提倡优化if 语句...
简介 数组、对象、CSV、表格、工具 我们在 每日 30 秒之 arrayToCSV 中一起学习了将数组数据转化为 csv 表格数据并导出,那如果是对象数组怎么办呢?小脑袋瓜转得快的同学肯定会说:使用 Array.prototype.map 把需要导出的字段先遍历取出,再使用 arrayToCSV 将其导出为 CSV 数据表格。 可是你有没有想过如果一个对象数组数据非常之大时,使用 Array.p...
showImg(https://segmentfault.com/img/remote/1460000018771004?w=900&h=500); 简介 数组、CSV、表格、工具 将一个数组转化为逗号为分割符的字符串(CSV)即表格数据。 // 该源码来自于 https://30secondsofcode.org const arrayToCSV = (arr, delimiter = ,) =...
阅读 2276·2021-08-26 14:14
阅读 2645·2019-08-29 13:07
阅读 2014·2019-08-26 11:44
阅读 662·2019-08-26 10:11
阅读 2390·2019-08-23 15:43
阅读 3062·2019-08-23 14:17
阅读 350·2019-08-23 12:36
阅读 2010·2019-08-22 15:20