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;
}

测试结果:



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

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

最佳答案

涵盖所有情况的几个建议。

  • 返回之前测试timeseries [i] .price是否为null。
  • 您可能想尝试使用==而不是===,因为它还会在检查之前进行必要的类型转换。

  • 引用:https://stackoverflow.com/a/359509/4874271

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

    关于javascript - 为什么即使我已经执行过此测试,仍然期望我的函数抛出错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39118011/

    10-10 00:49