当前位置: 首页 > 后端技术 > Node.js

【今晚大吉祥包】002-array-first

时间:2023-04-03 18:43:35 Node.js

介绍今天吃array-first包,这个包主要是用来截取一个数组的头部元素。官方例子:varfirst=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,我觉得小包的目录结构类似,略有不同。主要代码varisNumber=require('is-number');varslice=require('array-slice');/***@param{Array}arrarray*@param{number}num截获数*/module.exports=functionarrayFirst(arr,num){if(!Array.isArray(arr)){thrownewError('array-first期望一个数组作为第一个参数。');}if(arr.length===0){返回空值;}varfirst=slice(arr,0,isNumber(num)?+num:1);if(+num===1||num==null){返回第一个[0];}先返回;};代码相信大家都看得懂,核心代码主要是slice(arr,0,isNumber(num)?+num:1);这句话,里面用到了一个array-slice模块,这个模块和Array.splice的功能是一样的,唯一不同的是不会改变源数组,类似于String.splice。unittestingmocha进行单元测试,测试脚本就不贴了,咯。总结一下,这个包比较小,但是很符合包的定义:首先,只截取header中的元素。美中不足的是,当num为1时,返回的是数组的第一个元素,这使得返回结果成为可能。是Array,也可能是其他类型。不过仔细想想,说不定就是这么一个使用场景呢~