我有一个数组,里面有几天.每天都是一个对象,例如:
{day_year: "2012", day_month: "08", day_number: "03", day_name: "mon"}
我还为每个日期对象添加了一个timestamp属性,方法是:
function convertDays() {
var max_i = days.length;
for(var i = 0; i < max_i; i++) {
var tar_i = days[i];
tar_i.timestamp = new Date(tar_i.day_year, tar_i.day_month, tar_i.day_number);
}
}
Run Code Online (Sandbox Code Playgroud)
数组中的日子是任意的,因此它们没有真正的逻辑.
现在我想找到任何给定日期的最近两天.所以如果带有days的数组包含
我搜索2012年8月11日,我希望它返回2012年8月4日和2012年8月23日.
我尝试过使用另一个问题的答案,如下所示:
function findClosest(a, x) {
var lo, hi;
for(var i = a.length; i--;) {
if(a[i] <= x && (lo === undefined || lo < a[i])) lo = a[i];
if(a[i] >= x && (hi === undefined || …Run Code Online (Sandbox Code Playgroud)