Javascript 为什么这个测试仍然期望我的函数抛出一个错误,即使我已经这样做了?

Javascript 为什么这个测试仍然期望我的函数抛出一个错误,即使我已经这样做了?,javascript,arrays,exception,error-handling,throw,Javascript,Arrays,Exception,Error Handling,Throw,timeseries是以下格式的数组: [ {"date": "2012-12-21", "price": 1.234}, ... ] 我的代码: function first(timeseries) { if (timeseries.length === 0) { return undefined; } var earliestIndex = 0; for (var i = 0; i < timeseries.length; i++) { if (tim

timeseries是以下格式的数组:

[ {"date": "2012-12-21", "price": 1.234}, ... ]
我的代码:

function first(timeseries) {
  if (timeseries.length === 0) {
    return undefined;
  }
  var earliestIndex = 0;
  for (var i = 0; i < timeseries.length; i++) {
    if (timeseries[i].date === null) {
      throw new Error("no date");
    } else {
      if(Date.parse(timeseries[i].date) < Date.parse(timeseries[earliestIndex].date)) {
        earliestIndex = i;
      }
    }
  }
  return timeseries[earliestIndex].price;
}
函数优先(时间序列){
if(timeseries.length==0){
返回未定义;
}
var-earliestIndex=0;
对于(var i=0;i
测试结果:

问题没有具体说明未提供日期的确切值


为什么会这样?我已经抛出了一个错误。

两条建议涵盖所有案例

  • 返回前测试timeseries[i].price是否为空

  • 您可能希望尝试使用
    ==
    而不是
    ==
    ,因为它在检查之前也会进行必要的类型转换

  • 参考:


    提示:复制代码并在此处格式化,而不是张贴照片,这样人们更容易回答。:)

    请在postWell中以文本形式提供代码,未提供日期时的值是多少?它是否确实是
    null
    …?您能提供测试用例3的测试数据吗?