交集 - intersect(arr)
功能:获取当前数组与目标数组的共有元素。
参数:
{Array} arr- 对比数组
返回值:
{Array}- 交集结果
1 | Array.prototype.intersect = function(arr) { |
差集 - diff(arr)
功能:获取当前数组中存在,但目标数组中不存在的元素。
参数:
{Array} arr- 对比数组
返回值:
{Array}- 差集结果
1 | Array.prototype.diff = function(arr) { |
并集 - union(arr)
功能:合并两个数组并去重。
参数:
{Array} arr- 需要合并的数组
返回值:
{Array}- 并集结果
1 | Array.prototype.union = function(arr) { |
打乱 - shuffle()
功能:原地打乱数组顺序(Fisher-Yates 算法)。
返回值:
{Array}- 打乱后的数组
1 | Array.prototype.shuffle = function() { |
拆分 - partBy(func)
功能:将数组按条件函数拆分为两个数组。
参数:
{Function} func- 判断函数
返回值:
{[Array, Array]}-[满足条件的数组, 不满足条件的数组]
1 | Array.prototype.partBy = function(func) { |
分块 - chunk(size)
功能:将数组按指定大小拆分为多个数组。
参数:
{number} size- 每块大小
返回值:
{Array<Array>}- 分块后的数组
1 | Array.prototype.chunk = function(size) { |
扁平化 - flatten(depth)
功能:展平数组。
参数:
{number} [depth=Infinity]- 深度
返回值:
{Array}- 展平后的数组
1 | Array.prototype.flatten = function(depth = Infinity) { |
计数 - countBy(func)
- 功能:根据函数对数组元素计数。
- 参数:
{Function} [func=x=>x]- 映射函数。 - 返回值:
{Object}- 每个 key 出现的次数。
1 | Array.prototype.countBy = function(func = (x) => x) { |
分组 - groupBy(keyFunc)
功能:根据函数对数组元素分组。
参数:
{Function} keyFunc- 生成 key 的函数
返回值:
{Object}- 分组对象 { key: 元素数组 }
1 | Array.prototype.groupBy = function(keyFunc) { |
字段去重 - uniqueBy(field)
功能:根据对象字段去重。
参数:
{string} field- 对象字段名
返回值:
{Array}- 去重后的数组
1 | Array.prototype.uniqueBy = function(iteratee) { |
权重随机 - weightedRandom(weights)
功能:根据权重随机选取数组元素。
参数:
{Array<number>} weights- 权重数组
返回值:
{*}- 随机选中的元素
1 | Array.prototype.weightedRandom = function(weights) { |
组合 - combinations(s)
功能:返回数组所有长度为 s 的组合。
参数:
{number} s- 组合长度
返回值:
{Array<Array>}- 组合数组
1 | Array.prototype.combinations = function(s) { |
全排列 - permute()
功能:返回数组的全排列(Heap 算法)。
返回值:
{Array<Array>}- 全排列数组
1 | Array.prototype.permute = function() { |
笛卡尔积 - cartesianProduct(…arrays)
功能:返回数组与其他数组的笛卡尔积。
参数:
{...Array} arrays- 其他数组
返回值:
{Array<Array>}- 笛卡尔积数组
1 | Array.prototype.cartesianProduct = function(...arrays) { |
#JAVASCRIPT
ACCESS_GRANTED_BY_LIMPID