npm 包 chai-sorted 使用教程

面试官:小伙子,你的代码为什么这么丝滑?

前言

chai-sorted 是一个可以让你在测试时很方便地测试数组是否已经排好序的 npm 包。对于前端工程师来说,JavaScript 数组的排序很常见,使用 chai-sorted 可以更加方便地测试排序是否正确。本文将会为大家介绍如何使用该包。

安装和使用

  1. 安装
--- - ----------- ----------
  1. 引入和使用
----- ---- - ----------------
----- ---------- - -----------------------
---------------------

---------- ---- --- ----- ----------- -- -- -
  ----- ------ - --- -- -- ---
  ----- -------- - --- -- -- ---
  -------------------------- -- -- ---------- - ------ --
  ------------------------------------- -- --------
  -------------------------------------- -- --------
  --------------------------- -- -- - - --- -- ---------------
---

深入学习

chai-sorted 提供一个 sorted 方法,这是如何实现的呢?我们来看一下源码:

-------- ----------- -- -
  ------ ------ - --- -------- -- ------ - --- -------- - - - - - -----------------------------------
-

---
 - ----- -- --- ----- -- -------
 -
 - ------ ------------------ -------
 - -------- ---------
 - ---- ------
 --

-------- ------------- -
  ----- - ------------------
  ----- --- - ---------------------
  -- --------------------- -
    ----- --- --------------- ------- -- -- -- --------
  -

  ----- ------ - ---------------------- --- ------------ - --- -- -- ----------- -- - --------------------

  ---------------------------------- --------- ------- -- -- ---------

  ------ -----
-

从源码可以看出,chai-sorted 通过 sorted 函数来实现数组排序的检测。在 sorted 函数中,首先解析 order,用的是 parseOrder 函数。parseOrder 函数里是一个 switch,根据传进来的值,映射出 descending 或 ascending 或 undefined,这个值默认是 undefined。sorted 函数中,将对象转换成数组,判断它是不是一个数组,如果不是,则抛出异常。然后将该数组利用 slice 方法生成一个新数组,再利用该数组的 sort 方法进行排序,方法里传的比较函数根据 order 的值而不同,最后将它们都转换成字符串,进行检测。

指导意义

chai-sorted 是一个可以让测试排序的过程更加方便的 npm 包,使用它可以很方便地测试排序是否正确。chai-sorted 的源码也不算太复杂,你可以通过学习其源码来对比了解其他 npm 包的实现方式。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/91157


猜你喜欢

  • npm 包 dbmmods 使用教程

    介绍 dbmmods 是一个基于 Node.js 的 npm 包,提供了一些常用的前端开发工具和模块的实现。本文将详细介绍 dbmmods 的使用方法,包括安装、基础使用和一些高级技巧。

    5 年前
  • npm 包 steno 使用教程

    1 简介 npm 是 Node.js 的包管理器,它为开发者提供了一个方便的途径来安装、更新和删除 Node.js 模块。steno 是一个 npm 包,它是一个用于处理文件的 Node.js 模块,...

    5 年前
  • npm 包 react-native-camera-roll-picker 使用教程

    在 React Native 中,我们经常需要使用相册所储存的照片和视频来进行开发。而 react-native-camera-roll-picker 就是一款帮助开发者轻松使用相册中照片和视频的 R...

    5 年前
  • npm 包 rc-swipeout 使用教程

    前言 在前端开发中,我们经常需要开发移动端应用或网站,这时候就需要用到一些移动端特有的组件,例如 swipeout 组件,用于实现滑动删除等操作。在这里,我们将介绍一个 npm 包——rc-swipe...

    5 年前
  • npm 包 rc-slider 使用教程

    在前端开发中,常常需要使用滑动条这种 UI 组件来进行交互。而 npm 包 rc-slider 提供了一个简单易用的滑动条组件,本文将介绍如何使用 rc-slider,并提供一些实例代码,帮助读者快速...

    5 年前
  • npm 包 rc-drawer 使用教程

    前言 在前端开发中,样式库和组件库是不可或缺的利器。而 rc-drawer 是一个非常好用的抽屉式滑动组件,在移动端开发中特别方便。在这篇文章中,我们将学习如何使用 rc-drawer 组件和相关配置...

    5 年前
  • npm 包 rc-collapse 使用教程

    在前端开发中,我们经常需要实现页面元素的收缩和展开,比如折叠菜单、手风琴效果等。而 npm 包 rc-collapse 是一个非常好用的工具,可以帮助我们快速实现这些效果。

    5 年前
  • npm 包 rc-checkbox 使用教程

    前言 在前端开发中,复选框是非常常见的控件,而在 React 项目中,我们可以使用 rc-checkbox 这个 npm 包来实现复选框的功能。本文就是要详细介绍 rc-checkbox 的使用教程。

    5 年前
  • npm包array-tree-filter使用教程

    前言 作为前端开发者,经常会接触到树形结构的数据,这时一个好用的array-tree-filter npm包可以帮助我们高效地过滤出符合条件的数据。本文将为大家介绍array-tree-filter的...

    5 年前
  • NPM包@talentui/cz-project-changelog使用教程

    提供了一种基于commitizen的git commit信息规范化的方式,用于创建项目的CHANGELOG.md。这个规范的设计目的是为了生成人类可读的CHANGELOG,同时也非常适合与自动化发布工...

    5 年前
  • npm 包 ember-cli-groundskeeper 使用教程

    什么是 ember-cli-groundskeeper ember-cli-groundskeeper 是一个拥有代码压缩、混淆和精简能力的 Ember.js 插件。

    5 年前
  • npm包 easy-amdtest 使用教程

    简介 easy-amdtest是一个轻便的JavaScript测试框架,提供了AMD规范的测试接口和丰富的 API,可以让前端开发者更加方便地进行单元测试和集成测试,提高代码质量。

    5 年前
  • npm 包 bbb 使用教程

    简介 npm(Node Package Manager) 是 Node.js 的包管理工具,提供了各式各样的 Node.js 包,使得 Node.js 开发变得更加易用、高效。

    5 年前
  • npm 包 ttys 使用教程

    简介 ttys是一个 npm 包,它可以轻松获取当前 tty 的信息,包括判断当前进程是否在终端上运行,以及获取终端的尺寸等。 安装 使用 npm 进行安装: --- ------- ----使用 引...

    5 年前
  • npm 包 sonar-web-frontend-reporters 使用教程

    在现代 Web 应用程序开发过程中,前端代码几乎与后端代码同等重要。然而,前端开发人员常常面临不同平台、Web 浏览器和设备的兼容性问题。sonar-web-frontend-reporters 是一...

    5 年前
  • npm 包 @pollyjs/persister-fs 使用教程

    前言 在前端开发中,我们经常需要进行数据持久化记录和读取。而 @pollyjs/persister-fs 是一个方便且易于使用的 npm 包,能够帮助我们将 JSON 形式的数据存储到本地文件中,同时...

    5 年前
  • npm 包 @pollyjs/core 使用教程

    什么是 @pollyjs/core ? @pollyjs/core 是一个用于录制和回放 HTTP 交互的工具包。它通过将 HTTP 请求和响应存储在本地来模拟 HTTP 交互,避免了对网络的依赖。

    5 年前
  • npm 包 @pollyjs/adapter-node-http 使用教程

    简介 在前端开发的过程中,我们经常需要与后端进行交互获取数据,为确保数据的准确性和可靠性,我们需要进行数据的模拟和测试,此时 @pollyjs/adapter-node-http 就尤为重要了。

    5 年前
  • npm 包 node-dev-delay 使用教程

    在进行前端开发时,我们通常会使用一些工具来自动化我们的流程,例如自动编译、自动刷新页面等。其中,node-dev 是一个非常常用的工具,它可以监听我们编写的代码变化,自动重新运行我们的应用程序。

    5 年前
  • npm 包 nexus-cli-tmp 使用教程

    随着前端工程化的发展,我们常常需要在项目中进行一些相关的构建和部署操作。为了方便管理和使用,我们经常会选择使用一些比较实用和方便的工具来进行必要的操作。而在使用这些工具的过程中,npm 包是不可或缺的...

    5 年前

相关推荐

    暂无文章