Lodash,未捕获的TypeError:_.remove不是一个函数。

4

我正在使用 HTML script 标签在我的网页中引入 lodash v.4.17.11 js 文件。

<body>
...
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.core.min.js"></script> 
</body>

一些函数,如_.filter()_.reduce()可以正常工作,但是_.remove()给我返回了:

未捕获的TypeError: _.remove不是一个函数

似乎库文件中不存在该函数!尽管在文档中有列出。

我该如何解决这个问题?谢谢!

https://lodash.com/docs/4.17.11#remove


你能添加一行导入/需要 lodash 的代码吗? - Akrion
``` - Ahmed Ismail
你是从lodash中特定地引入函数还是使用整个库?例如,你是否有像import { filter } from 'lodash'这样的代码? - Akrion
不,我正在从cdnjs网址包含整个库文件。 - Ahmed Ismail
2个回答

6
你正在使用 core 库。看起来你需要更多的东西,而不仅仅是 core
而不是: https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.core.min.js

use: https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js

以下是更多关于差异的细节:

https://github.com/lodash/lodash/wiki/Build-Differences

为了您的方便:

4 kB(压缩后)核心构建(63个方法;Backbone ≥ v1.3.0 兼容)

_.assignIn、_.before、_.bind、_.chain、_.clone、_.compact、_.concat、_.create、_.defaults、_.defer、_.delay、_.each、_.escape、_.every、_.filter、_.find、_.flatten、_.flattenDeep、_.forEach、_.has、_.head、_.identity、_.indexOf、_.isArguments、_.isArray、_.isBoolean、_.isDate、_.isEmpty、_.isEqual、_.isFinite、_.isFunction、_.isNaN、_.isNull、_.isNumber、_.isObject、_.isRegExp、_.isString、_.isUndefined、_.iteratee、_.keys、_.last、_.map、_.matches、_.max、_.min、_.mixin、_.negate、_.noConflict、_.noop、_.once、_.pick、_.reduce、_.result、_.size、_.slice、_.some、_.sortBy、_.tap、_.thru、_.toArray、_.uniqueId、_#value 和 _.values

限制:

  • 没有 _.matchesProperty 迭代器的速记方式
  • 不支持深度属性路径
  • 没有惰性求值
  • 不支持占位符
  • 没有强大的克隆功能(仅限于数组和普通对象)
  • 不支持映射、集合和类型化数组

1
非常感谢,那解决了问题,我将更新问题并将URL放入其中,因为这是重要信息。 - Ahmed Ismail

0

对于我来说,我使用的是"lodash": "^4.17.21",一切正常直到有一天,我不知道为什么收到了这个错误消息:

Uncaught TypeError: _.remove is not a function

其他的 lodash 函数仍然可以使用,只有 _.remove() 不能用。

我尝试通过 npm 删除并重新安装 lodash,但这并没有解决问题。 我还在文件夹 node_modules 中查找,发现文件 remove.js 仍然存在。

然后我尝试了另一种方式:import { remove } from 'lodash',最终错误消失了。

希望这能帮到你!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接