求思路

有一个数组arr,写一个方法,
实现的功能是:
如果参数:name为"C",flag为-1,则找到arr中在C之前,且当前时间(2010-04-13)在第二,三列之间的元素,["A","2010-04-05","2010-04-18"],
如果参数:name为"C",flag为1,则找到arr中在C之后,且当前时间(2010-04-13)在第二,三列之间的元素,["D","2010-04-05","2010-05-05"]

function getIndex (name,flag){
var arr = [["A","2010-04-05","2010-04-18"]
,["B","2010-01-05","2010-01-25"]
,["C","2010-04-05","2010-04-25"]
,["D","2010-04-05","2010-05-05"]
,["E","2010-02-05","2010-02-15"]];
for (var i = arr.length-1;i>0;i++) {
....
}

    }

顺便想问一下,这样的问题的难点在哪里。谢谢

function getIndex(name, flag) {
var arr = [["A", "2010-04-05", "2010-04-18"],
["B", "2010-01-05", "2010-01-25"],
["C", "2010-04-05", "2010-04-25"],
["D", "2010-04-05", "2010-05-05"],
["E", "2010-02-05", "2010-02-15"]];
var len = arr.length;
function getIndex(str) {
var i;
for (i = 0; i < len; i++) {
if (this[i][0] == str)
return i;
}
return false;
}

var i = getIndex.call(arr, name);
var arr1 = flag == -1 ? arr.slice(0, i) : arr.slice(i + 1, len);
function getDateStr() {
    function fixZero() {//补0函数
        return this < 10 ? '0' + this : this;
    }
    var month = fixZero.call(this.getMonth() + 1);
    var date = fixZero.call(this.getDate() + 1);
    return this.getFullYear() + '-' + month + '-' + date;
}

var now = getDateStr.call(new Date());

function getResult(dateStr) {
    var i;
    var res = [];
    for (i = 0; i < this.length; i++) {
        if (this[i][1] <= dateStr && this[i][2] >= dateStr)
            res.push(this[i]);
    }
    console.log(res.length);
    return res;
}

return getResult.call(arr1, now);

}
getIndex('C', 1);
要自己写函数格式化日期,挺恶心的