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

时间:2016-08-24 08:19:58

标签: 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 (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;
}

测试结果:

testResult

未提供时,问题未指明日期的确切值。

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

1 个答案:

答案 0 :(得分:1)

涵盖所有案例的一些建议。

  1. 在返回之前测试timeseries [i] .price是否为空。

  2. 您可能希望尝试使用==代替===,因为它还会在检查前进行必要的类型转换。

  3. 参考:https://stackoverflow.com/a/359509/4874271

    提示:在此处复制代码并将其格式化而不是发布照片,人们更容易回答。 :)