flatten()、flattenDeep()、flattenDepth()

这篇博客主要解析lodash库中用于数组扁平化的flatten、flattenDeep和flattenDepth方法。这三个方法的区别在于扁平化的层级,flatten做一层扁平化,flattenDeep实现完全扁平化,而flattenDepth则允许指定扁平化的深度。内容包括源码解析和示例,帮助读者理解其工作原理。
摘要由CSDN通过智能技术生成

flatten()、flattenDeep()、flattenDepth()

每天更新一个lodash方法源码解析

flatten()、flattenDeep()、flattenDepth()都是用于对数组的扁平化处理,不同之处在于扁平化的层级,flatten()是对数组进行一层扁平化处理,flattenDeep()是对数组完全扁平化处理,flattenDepth()是对数组进行指定层级的扁平化处理,其内部的实现都是基于baseFlatten()方法。

flatten()方法源码:

// flatten.js
// flatten方法用于对数组进行扁平化一层的操作
function flatten(array) {
   
  // 取数组的length
  const length = array == null ? 0 : array.length
  // 当length大于0时,调用baseFlatten方法,扁平化层级为1
  return length ? baseFlatten(array, 1) : []
}

flattenDeep()方法源码:

// flattenDeep.js
// flattenDeep方法用于对数组完全扁平化处理
function flattenDeep(array) {
   
  // 取数组的length
  const length = array == null ? 0 : array.length
  // 当length大于0时,调用baseFlatten方法,扁平化层级为INFINITY(无限大),意思就是将数组中的元素扁平化到不能扁平化了为止
  return length ? baseFlatten(array, INFINITY) : []
}

flattenDepth()方法源码:

// flattenDepth.js
// flattenDepth方法通过指定扁平化层级depth来实现数组扁平化到指定层
function flattenDepth(array, depth) {
   
  // 取数组的length
  const length 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值