javascript - 向 javascript 的 Array 类添加自定义函数会破坏数组声明
问题描述
在我的一个 Nodejs 项目中,我添加了一个来自 stackoverflow 的解决方案,用于查找两个数组之间的差异。
Array.prototype.diff = function (arr2) {
return this.filter((x) => !arr2.includes(x));
};
直到今天,一切正常,但今天我的个人 cli 无缘无故坏了,我意识到,在数组声明中,nodejs 会自动将键值对添加到数组中。(键:差异,值:功能(arr2)...)
const values = [];
for (const i in values) {
console.log(i, values[i]);
}
// diff [Function (anonymous)]
我已经从其他项目中删除了该功能,将 nodejs 升级到更高版本,但它仍然添加了上面的键值对。我怎样才能解决这个问题?
解决方案
最后,我已经修复了它。以前我已经发布了包含代码的 npm 库:
Array.prototype.diff = function (arr2) {
return this.filter((x) => !arr2.includes(x));
};
它破坏了所有使用我的库的代码。今天我改变了代码
const diff = (arr1, arr2) => arr1.filter((x) => !arr2.includes(x));
推荐阅读
- sql - 如何在 bigquery 中选择每月最大日期?
- java - 将 Spring 应用程序转换为 SpringBoot
- php - Imap 加载邮箱内容性能 | php-imap | 拉拉维尔
- reactjs - Antd Pro Table 移除默认搜索按钮并实现 Debounce
- typescript - 键值对的 TypeScript 类型别名
- api - 更新没有主键的分离实体
- django - Django应用程序中不同用户类别的限制访问
- terraform - 仅提示 terraform 变量一次
- if-statement - 如何每天重命名多个文件
- javascript - 如何在html上显示本地存储