undefined 不是构造函数

undefined is not a constructor

我正在使用 rails 4, capybara, poltergeist 来测试我的 rails 4 + angularjs 应用程序。在我的 angular 应用程序中,我的指令控制器中有一个地方有以下代码。

var audience = [someObject1, someObject2, someObject3].findIndex(function(object) {
  return object.id === 1;
});

我在测试时遇到了以下错误

Error: undefined is not a constructor (evaluating '[1,2,3].findIndex(function(v) { return v === 1; })')

实际上它甚至不允许我有这样的东西

[1, 2, 3].findIndex(function(v) {
  return v === 1;
});

谁知道为什么闹鬼不喜欢 Javascript 的 findfindIndex 方法?

find 和 findIndex 是 ES6 方法,可能不受 phantomJs 支持。如果你不是 运行 phantomjs 2.1.1,你可以尝试更新到那个,否则你可以使用你的 poltergeist 驱动程序配置中的 extensions 选项加载 polyfill,或者重写你的代码以不使用 ES6 方法