简介

今天吃 array-first 这个包,这个包主要是用来截取一个数组的头部元素的。

官方例子:

var first = require('array-first');first(['a', 'b', 'c', 'd', 'e', 'f']);
//=> 'a'first(['a', 'b', 'c', 'd', 'e', 'f'], 1);
//=> 'a'first(['a', 'b', 'c', 'd', 'e', 'f'], 3);
//=> ['a', 'b', 'c']

目录结构

emm,觉得小包的目录结构都差不多的,略。

主要代码

var isNumber = require('is-number');
var slice = require('array-slice');/*** @param {Array<any>} arr 数组* @param {number}     num 截取数量*/
module.exports = function arrayFirst(arr, num) {if (!Array.isArray(arr)) {throw new Error('array-first expects an array as the first argument.');}if (arr.length === 0) {return null;}var first = slice(arr, 0, isNumber(num) ? +num : 1);if (+num === 1 || num == null) {return first[0];}return first;
};

代码相信各位都看得懂,而核心代码主要是 slice(arr, 0, isNumber(num) ? +num : 1); 这一句,而这其中用到了一个 array-slice 模块,这个模块跟 Array.splice 的作用一样,唯一区别是不会改变源数组,类似 String.splice

单元测试

单元测试用的 mocha,测试脚本就不贴了,略。

总结

这个包比较小,但很符合包的定义:first,只截取头部的元素,美中不足的点是当 num 为1时,返回的是数组的第一个元素,这就导致返回的结果有可能是Array,也有可能是其他类型。但仔细想想,或许刚好就有这种使用场景吧~

【大吉大利 今晚吃包】002 - array-first相关推荐

  1. HTML5+css+JS实现页面打枪声音特效减压玩法 PUBG 大吉大利 今晚吃鸡

    HTML5+css+JS实现页面打枪声音特效减压玩法 PUBG 大吉大利 今晚吃鸡 css部分 *{margin: 0;padding:0;}body{min-height:100vh;overflo ...

  2. 大吉大利-今晚吃鸡-枪械

    题目描述 在绝地求生(吃鸡)游戏里,不同的枪支有不同的威力,更是可以搭配不同的配件,以提升枪支的性能. 每一把枪都有其威力及其可装备配件种类.每一个配件有其所属种类,可以为枪支提供威力的百分比加成.每 ...

  3. 大吉大利-今晚吃鸡-跑毒

    题目描述 现在有一款很火的游戏playerunknown's battlegrounds,人称"吃鸡",在里面经常面临跑毒(从安全区外跑进安全区内)的问题,在安全区外,人们会处于中 ...

  4. 大吉大利今晚吃鸡——跑毒篇

    题目链接:点击打开链接 问题 1. 边界部分恰好擦着的时候到底是死是活.......写到程序里就是有没有=的问题. 首先题目里明确指出打包的时候擦着就是死. 然后后面有个带着你理解第二个样例的部分,这 ...

  5. 大吉大利 今晚吃鸡之跑毒篇

    现在有一款很火的游戏playerunknown's battlegrounds,人称"吃鸡",在里面经常面临跑毒(从安全区外跑进安全区内)的问题,在安全区外,人们会处于中毒状态,每 ...

  6. 大吉大利今晚吃鸡——枪械篇

    题目链接:点击打开链接 这题难点带就是输入?我是因为用float精度不够才不过的,改成double就ok了 #include <cstdio> using namespace std;in ...

  7. 【活动】今晚“吃鸡”还是“农药”,游戏背后的程序员告诉你如何造就一个好游戏?

    毫无疑问,眼下被问及哪款游戏最火时,<绝地求生>("吃鸡"游戏)是2017年游戏圈最大赢家.3月上线后短时间内就获得了超过2100万的全球累计销量."大吉大利 ...

  8. 包吃包住包机票的培训你见过吗?云南高通量条形码培训班,截止5月31日

    文章目录 2019年中国云南高通量条形码培训班 划重点 简介 日程 申请 授课教师 课程安排 培训地点 旅行 要求 参考文献 猜你喜欢 写在后面 2019年中国云南高通量条形码培训班 2019年云南高 ...

  9. rust和gta5哪个吃配置_选指数基金,像“今晚吃什么”一样容易

    大家好,我是格子. 指数基金有很多,听说你还不会买指数基金? 那,下过馆子不? 格子教你像点菜一样,在今晚吃饭前就可以搞定指数基金! 一.厨房有什么? 1.宽基指数就像是火锅套餐. 特点呢,就是里面啥 ...

最新文章

  1. 第三百三十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—深度优先与广度优先原理...
  2. mysql 共享表空间_MySQL共享表空间概念
  3. python -- leetcode 刷题之路
  4. Cloud Foundry Java客户端–流事件
  5. jwPlayer为js预留的回调方法
  6. Python3错误和异常
  7. mysql必知必会_5天学完《MySQL必知必会》学习笔记之第四天
  8. jinja2模板用法详解
  9. c语言学习-利用函数指针的方法,求任意给出两个整数的x和y的和、差。
  10. 工具 - 怎么看微信h5的源码?
  11. 2022-10-10 Android 在其他应用上的悬浮窗View
  12. mysql+sqlplus命令找不到_SQLPLUS命令技巧
  13. FileRecv VNCViewer 使用方法
  14. DCT和IDCT原始公式计算
  15. java 提交mac地址栏_Mac系统快捷键大全 - 米扑博客
  16. Adding a Timepicker to jQuery UI Datepicker
  17. 拉格朗日乘数和KTT条件
  18. 进入BeOS的花花世界 系列三
  19. LeetCode C++基础面试题汇总附答案(一)
  20. Bison for Windows

热门文章

  1. python语言代码片段-有用的Python代码片段
  2. RabbitMQ (五)实现类似Dubbo的RPC调用
  3. python filter内置函数_python 内置函数filter
  4. 计算机背景象怎样改变,我的页面背景总是黑色,以前改变过现在好象改变不了?我该怎么改变呢? 爱问知识人...
  5. 智能车竞赛技术报告 | 智能车视觉 - 石家庄学院 - 百事
  6. Python - 移除List中重复项的五种常用方法
  7. 第十六届全国大学生智能汽车竞赛 英飞凌特供芯片支持计划TC364TC377
  8. 第十五届全国大学生智能车全国总决赛获奖信息-华南赛区
  9. STC8K28步进电机ULC2003触发器
  10. @Transactional注解在什么情况下失效?