每天一个lodash方法(8)

Array method 系列之八

  • join:通过把 array的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成的。
 function join(array, separator) {
      // 调用原生join方法实现
      return array == null ? '' : nativeJoin.call(array, separator);
}
  • last:返回数组最后一个元素。
function last(array) {
  const length = array == null ? 0 : array.length
  // 最后一个元素 == array[length - 1]
  return length ? array[length - 1] : undefined
}
  • lastIndexOf:从数组的尾部查询需查找的元素,如找到匹配值返回下标,否则返回-1;类似indexOf
function lastIndexOf(array, value, fromIndex) {
      var length = array == null ? 0 : array.length;
      if (!length) {
        return -1;
      }
      var index = length;
      if (fromIndex !== undefined) {
        index = toInteger(fromIndex);
        index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
      }
      // 确定查询起始位置index
      return value === value
        ? strictLastIndexOf(array, value, index)
        : baseFindIndex(array, baseIsNaN, index, true);
    }

// strictIndexOf
function strictLastIndexOf(array, value, fromIndex) {
  let index = fromIndex + 1
  // 从尾部遍历查询
  while (index--) {
    if (array[index] === value) {
      return index
    }
  }
  return index
}
// baseFindeIndex是通过谓词判定比较值是否相等
  • nth:返回数组的第n个元素
function nth(array, n) {
  const length = array == null ? 0 : array.length
  if (!length) {
    return
  }
  // 判断n是否小于0
  n += n < 0 ? length : 0
  // isIndex判断n是否是有效的index,如果有效,返回array[n],否则,返回undefined
  return isIndex(n, length) ? array[n] : undefined
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 由于最近都在freecodecamp上刷代码,运用了很多JavaScript数组的方法,因此做了一份关于JavaS...
    2bc5f46e925b阅读 2,211评论 0 16
  • The JavaScriptArrayobject is a global object thatis used ...
    skycolor阅读 631评论 0 0
  • 坐在车上,听着音乐,不知怎么的,就想象到了自己老了会是怎样的。大致的老年生活会有这样几种:第一种是和儿女生活在一起...
    crystal101阅读 343评论 0 0
  • 写下这个标题,我绝对不是来影评的,但不排斥蹭热度,借这个标题一用,只不过陈述一下我真实的前半生。 我人生的前十九年...
    夏若凡花阅读 898评论 46 38
  • 普通线程池 平均写入1条/4s 采用信号量+批量方式
    hugoren阅读 526评论 0 0

友情链接更多精彩内容