我试图找到匹配日期被发现的嵌套数组的“标题”......但无济于事。如何找到找到值的多维数组的“标题”?
如果在数组中找到日期,它应该提示“TRUE”。日期必须匹配或在日期范围内。当它被发现时,我想获得嵌套数组的“标题”,它被发现匹配。 (IE。日期“2013年10月29日”被发现匹配下“人2”。我想说的标题以及。
我目前循环两个嵌套数组检查最后,他们会有更多的人和时间,要注意的是,没有时间在数组中出现两次,这将用于在网页上显示谁在那段时间内可用,而数据库会是一个更好的路线走,这是坐在主机和不会被捆绑到DB2。
如果要去关于一个更简单的方法,我所有的耳朵也是如此。
var data = []
var data = [
{title:'Person 1',contents:[
{primary:"7/09/2013"},{primary:"7/22/2013"},{primary:"10/15/2013"},{primary:"10/28/2013"},{primary:"1/21/2014"},{primary:"2/03/2014"}]},
{title:'Person 2',contents:[
{primary:"7/23/2013"},{primary:"8/05/2013"},{primary:"10/29/2013"},{primary:"11/11/2013"},{primary:"2/04/2014"},{primary:"2/17/2014"}]
}
];
Array.prototype.between = function(arg) {
for(var i=0, j=data.length; i < j; i++){
for(var p=0, plen=data[i].contents.length; p < plen; p++){
var d1 = new Date(data[i].contents[0].primary),
d2 = new Date(data[i].contents[1].primary),
d4 = new Date(data[i].contents[2].primary),
d5 = new Date(data[i].contents[3].primary),
d3 = new Date(arg);
}
//alert(data[i].title); //Using "data[i].title" will grab both titles but I only need one.
}
return ((d1.getTime() <= d3.getTime() && d3.getTime() <= d2.getTime()) || (d4.getTime() <= d3.getTime() && d3.getTime() <= d5.getTime()));
}
alert(data.between("10/29/2013"));
和提琴......
http://jsfiddle.net/sherman2k2/E3ASy/1/
如果您将日期设置为数组而不是重复键对象,那么编写逻辑会更简单。 – dandavis
你的代码对我没有意义。每次通过内部循环时,都会重置所有这些“d”变量的值。在该函数结束时,这些值将是来自循环的最后一次迭代的值。 – Pointy