【源码学习】omit.js——剔除对象中的属性

126 阅读1分钟

【源码学习】omit.js——剔除对象中的属性

1、omit.js 介绍

// 安装
npm i --save omit.js
// 使用demo
var omit = require('omit.js');
omit({ name: 'Benjy', age: 18 }, [ 'name' ]); // => { age: 18 } // 遍历剔除

2、查看源码

  • 核心代码
function omit(obj, fields) {
  var shallowCopy = Object.assign({}, obj);
  for (var i = 0; i < fields.length; i += 1) {
    var key = fields[i];
    delete shallowCopy[key];
  }
  return shallowCopy;
}

第一个参数为目标对象,第二个参数为需要删除的属性名数组;通过浅拷贝目标数组,然后对浅拷贝后的数组进行遍历剔除,然后返回浅拷贝数组。

  • 查看使用的依赖
  1. umi-fabric 一个包含 prettier,eslint,stylelint 的配置文件合集,链接

  2. np 好用的npm包发布工具 链接

  3. assert assert (断言) 模块是Node的内置模块,主要用于断言。

3、拓展

jest

可以使用 jest 替代asset来进行单元测试

// 安装
npm i jest -D
// 生成配置文件
npx jest --init

测试用例 image.png

注意点

  1. jest在ts文件使用
// 安装ts-jest
npm i -D ts-jest

// jest.config.js
{
    preset: "ts-jest"
}

// 继续安装@types/jest,是ts对jest的类型支持
npm i -D @type/jest

参考文章

  1. 若川说"可能是历史上最简单的一期omit.js"源码共读,但我学到了这些 - 掘金 (juejin.cn)