【若川视野 x 源码共读】第36期 | omit.js 剔除对象中的属性

117 阅读1分钟

一:omit.js是干什么用的?

删除掉制定的属性,返回一个没有列入排除key属性的对象。

var omit = require('omit.js');
omit({ name: 'Benjy', age: 18 }, [ 'name' ]); // => { age: 18 }

二:本次源码共读的目标

1,了解源码

2,了解一下jest单元测试术语

三:源码共读

// 两个入参:obj-->原对象,fields-->数组类型,需要剔除的属性字段组成的一个数组。
function omit(obj: Object, fields: string[]) {
    // 浅拷贝一下原数组,避免数据污染
    const shallowCopy: any = Object.assign({}, obj);
    // 循环要剔除的属性字段,删除掉原对象中的该属性
    for (let i = 0; i < fields.length; i += 1) {
      const key = fields[i];
      delete shallowCopy[key];
    }
    // 返回删除掉属性之后的数组
    return shallowCopy;
}

三:jest单元测试术语

describe("关于每个功能或某个组件的单元测试",()=>{
    // 不同用例的单元测试
    it('一个测试的名字', () => {
      // 实际的测试代码
      expect(xxx).toEqual(xxx);
    });
    test('一个测试的名字', () => {
      // 实际的测试代码
      expect(xxx).toEqual(xxx);
    });
})

describe描述,会形成一个作用域。

it 是 test 的一个别名。

expect字面意思:期望的,这里就很容易理解了,就是运行我们的功能方法后,期望的结果是什么。

toEqual: 比较两个对象的时候使用这个,递归检查对象或数组的每个字段。