Javascript &引用;不支持的非原语比较“;论铬轮廓仪

Javascript &引用;不支持的非原语比较“;论铬轮廓仪,javascript,google-chrome-devtools,v8,Javascript,Google Chrome Devtools,V8,我的应用程序有一个瓶颈 Chrome告诉我们问题在于不支持非原语比较,我不确定我是否理解它的意思 下面是问题的确切代码(参见第6行) for(此.gdata中的var键){ var rows=this.gdata[key]; 对于(变量i=0;idt){ curr[key]=i>0&&rows[i-1];//曲轴无法对其进行优化,因为它必须将rows[i-1]转换为布尔值,并且不知道如何在不进行去优化的情况下进行转换。也许这样会更好 curr[key]=i>0?行[i-1]:false;曲轴无法

我的应用程序有一个瓶颈

Chrome告诉我们问题在于
不支持非原语比较
,我不确定我是否理解它的意思

下面是问题的确切代码(参见第6行)

for(此.gdata中的var键){
var rows=this.gdata[key];
对于(变量i=0;idt){

curr[key]=i>0&&rows[i-1];//曲轴无法对其进行优化,因为它必须将
rows[i-1]
转换为布尔值,并且不知道如何在不进行去优化的情况下进行转换。也许这样会更好


curr[key]=i>0?行[i-1]:false;

曲轴无法对其进行优化,因为它必须将
行[i-1]
转换为布尔值,并且不知道如何在不进行去优化的情况下进行转换。也许这样会更好


curr[key]=i>0?行[i-1]:false;

我发现Chrome并不总是对发现此特定问题的行计时,也不表示花费时间最多的行。 在我的例子中,这种错误总是发生在时间比较中


如果将行[i].date>dt更改为行[i].date.getTime()>dt.getTime(),警告是否消失?

我发现Chrome并不总是对发现此特定问题的行计时,也不表示花费时间最多的行。 在我的例子中,这种错误总是发生在时间比较中


如果将行[i].date>dt更改为行[i].date.getTime()>dt.getTime(),警告是否消失?

行[i-1]
的类型是什么?可能V8在转换
行[i-1]时遇到了困难
对象由于其复杂性而被转换为基本类型。重写对象原型上的
valueOf
方法可能会有所帮助。@loa_in_它是一个对象
行[i-1]的类型是什么?
?可能V8在转换
行[i-1]时遇到了困难由于对象的复杂性,
对象转换为基本类型。在对象的原型上重写
valueOf
方法可能会有所帮助。@loa_in_它是一个对象
&
不仅返回
true
而且
false
&不仅返回
true
false
for (var key in this.gdata) {
  var rows = this.gdata[key];
  for (var i = 0; i < rows.length; i++) {
    if (i === 0) first[key] = rows[i];
    if (rows[i].date > dt) {
      curr[key] = i > 0 && rows[i - 1]; //   <----  problem is here
      next[key] = rows[i];
      break;
    }
  }
}