我正在尝试使用head-js模块(https://github.com/ignlg/heap-js)初始化server.js中的最小堆/优先级队列。运行代码时,出现以下错误:


var minHeap = new Heap(customComparator);

  
  TypeError:堆不是构造函数


但是,根据文档,我正在正确初始化堆,并使用自定义构造函数作为参数。下面是我的代码:

var Heap = require("heap-js");
// Build a minimum heap of size k containing the k cities with the most active users
var customComparator = (city1, city2) => citySizes[city1] - citySizes[city2];
var minHeap = new Heap(customComparator);

最佳答案

在CommonJS和ES6模块中使用heap-js库是有区别的。

require(即CommonJS)时,您需要从返回的对象中销毁Heap类,如下所示:

const { Heap } = require('heap-js') // correct
const Heap = require('heap-js') // incorrect


而您必须在ES6中执行相反的操作,如下所示:

import Heap from 'heap-js' // correct
import { Heap } from 'heap-js' // incorrect

关于javascript - NodeJs heap-js模块:堆不是构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57950779/

10-12 14:10