0

几周前 map.put 曾经工作,但现在我们间歇性地收到此错误消息:

var mapTypeSubtype = new Map();
Uncaught TypeError: mapTypeSubtype.put is not a function
    at Test.js:411
    at Array.forEach (<anonymous>)
    at objGenericListener (Test.js:410)

这是Javascript api方面的问题吗?我看了文档并没有类似的方法.put,它已更改为.set. 但是奇怪的事情习惯了没有任何问题的工作,但现在它间歇性地工作。有什么建议么?将.set其更改为对我们来说将是一个很大的变化,因为我们在项目的许多地方都使用了地图。

更新

在从引入 put 方法的地方进行了大量搜索之后,我看到有一个 js 被加载到浏览器中,它是salesforce. 这就是定义的。

Map.prototype.put = function(a, b) {
    a && "undefined" != typeof b && (a in this.map || this.size++,
    this.map[a] = b)
}

所以我认为这有时可能不会加载,这会破坏我们的实现。

谢谢

4

1 回答 1

0

如您所知,课程中没有任何put方法Map,正如文档中提到的@Mahendra Pratap ES6( https://www.ecma-international.org/ecma-262/6.0/#sec-map-constructor )。

您可以在使用之前运行类似于以下脚本的内容,Map以防止重构您的项目:

Map.prototype.put = function(key, value){
    return this.set(key, value);
}

更多细节

为什么你的代码工作的一些猜测:

  • Map.prototype.put也许您的项目或包含的库中有某个地方。
  • 类中有put方法在not 中。确保您正在使用.HashMapjavajavascriptjavascript
  • 你可以在这里找到一些HashMap在 javascript 中的实现:JavaScript Hashmap Equivalent
于 2019-08-28T21:44:52.473 回答