npm模块之'filled-array以及请教源码中item的用法
发布于 6 年前 作者 sunfeng90 2399 次浏览 来自 问答

1、git地址

https://github.com/sindresorhus/filled-array.git

2、作用

生成指定大小并充满指定元素的数组

3、例子和源码解析

3.1 例子

const filledArray = require('filled-array');

console.log(filledArray('www', 3)) // 输出: ['www', 'www', 'www']
console.log(filledArray('www', -2)) // 输出数组长度非法的异常
console.log(filledArray('www', 0)) // 输出:[]
console.log(filled(i => {return i}, 15)); // 输出:[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 ]

3.2 源码及解析

function filled(item, n) {
  var ret = new Array(n);
  var isFn = typeof item === 'function';

 if (!isFn && typeof ret.fill === 'function') {  // 如果item不是数组,生成长度为n,且填充item的数组
    return ret.fill(item);
  }

 for (var i = 0; i < n; i++) {
    ret[i] = isFn ? item(i, n, ret) : item; // 当item是个函数,那么计算item(i, n, ret).此处不知道item为什么等于函数本身?????只是通过实验才知道是本身
  }

  return ret;
};
回到顶部