zoukankan      html  css  js  c++  java
  • [源计划] array-first

    获取数组的第一个元素或前n个元素。
    类似的有 array-last

    GitHub

    使用示例

    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']
    

    源码

    var isNumber = require('is-number'); // 判断是否是 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;
      }
      
      // 对传入的第二个参数做判断,如果传入的参数不是 number 类型或者没有传入,则使用默认值 1 
      var first = slice(arr, 0, isNumber(num) ? +num : 1);
      if (+num === 1 || num == null) {
        return first[0];
      }
      return first;
    };
    

    思考

    非常鸡肋的包,主要功能还是依赖其它包实现的。
    要实现 array-first 功能,大多数情况使用 arr[0] 就够了。
    要取多个元素的话可以使用原生的 slice() 函数。

    var arr = ['a', 'b', 'c', 'd', 'e', 'f'];
    arr[0]; // "a"
    arr.slice(0, 3); // (3) ["a", "b", "c"]
    
  • 相关阅读:
    LabVIEW入门第三天(软件及驱动包下载)
    poj1732
    poj1722
    poj1821
    poj1770
    poj1949
    poj1726
    poj1699
    poj1682
    poj1853
  • 原文地址:https://www.cnblogs.com/aaronzhou001/p/9115896.html
Copyright © 2011-2022 走看看