单词 omit 有「从中剔除,不包含」的释义,而 omit 工具函数的工作是「从对象中剔除指定属性作为新对象返回」,举一个例子
// 从哆啦A梦的信息中剔除掉「物种」和「生日」信息
const info = { name: "Doraemon", species: "Robot Cat", birthdate: "2112/09/03" }
const basicInfo = omit(info, ["species", "birthdate"]);
console.log(basicInfo); // { name: "Doraemon" }
console.log(info); // { name: "Doraemon", species: "Robot Cat", birthdate: "2112/09/03" }
omit 是一个不可或缺的工具函数,lodash 和 underscore 中都有他的影子,今天阅读的 omit.js 则是对 omit 做了单独实现。
omit.js 的基本情况
以2023年1月17日为时间节点,omit.js 最近版本发布在 2020年7月8日,周下载量30w以上。
查看 Github 的贡献者列表和依赖 omit.js 的 package 列表,可以分析出 omit.js 是一个由蚂蚁集团前端大佬维护的包,并且仍旧应用于 @ant-design/pro-table
@ant-design/pro-table
等项目。
如此一来可以得出结论:omit.js 是一个仍在维护中并处于长期稳定状态的项目。
omit 功能的实现
omit.js 的实现代码在 omit.js/index.js at…
function omit(obj, fields) {// eslint-disable-next-line prefer-object-spreadconst shallowCopy = Object.assign({}, obj);for (let i = 0; i < fields.length; i += 1) {const key = fi