npm模块学习之array-first

介绍了一个实用的Node.js模块'array-first',该模块能够轻松地从数组中获取第一个或前几个元素。本文通过示例展示了如何使用此模块,并深入解析了其内部实现原理。

1、git地址

github.com/jonschlinke…

2、作用

获取数组第一个或者前几个元素

3、例子和源码解析

3.1 例子

const first = require('array-first');

console.log(first(['a', 'b', 'c', 'd', 'e', 'f'])) // 输出:a

console.log(first(['d', 'e', 'f'], 1)) // 输出:d

console.log(first(['d', 'e', 'f'], 2)) // 输出:['d', 'e']

console.log(first([], 2)) // 输出:null

console.log(first('', 2)) // 输出:暴露异常Error: array-first expects an array as the first argument.

console.log(first([1, 2, 3], '3')) // 输出:[1, 2, 3]

console.log(first([1, 2, 3], '')) // 输出:[1]

console.log(first([1, 2, 3], null)) // 输出:1

console.log(first([1, 2, 3], undefined)) // 输出:1
复制代码

3.2 源码

var isNumber = require('is-number');
var slice = require('array-slice');

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;
};
复制代码

3.3 源码解析

1)暴露出去的函数有两个参数,分别是数组和获取元素的个数;

2)如果传入的不是数组,那么就会暴露类型错误的异常;

3)如果传入的是空数组,那么就会返回null;

4)接着通过slice函数截取第一个元素。如果未传入num或者num不是数字类型,那么默认截取1个元素;如果num是大于1的数字类型,那么就截取长度为num的数组。

5)如果num是1或者null类型,那么就截取数组第一个元素,返回的是一个元素。否则返回num长度的数组。

转载于:https://juejin.im/post/5c075b99f265da61117a1571

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值