使用jquery从嵌套json获取的最小日期

使用jquery从嵌套json获取的最小日期,jquery,json,Jquery,Json,我有一个json字符串 { "name":"experience", "spans":[ {"start":"2013-01-01","end":"2015-12-31","name":"Medical emergency","className":"gap","color":"red"}, {"start":"2017-03-01","end":"2017-03-16","name":"Test reason","className":"gap"

我有一个json字符串

{
    "name":"experience",
    "spans":[
        {"start":"2013-01-01","end":"2015-12-31","name":"Medical emergency","className":"gap","color":"red"},
        {"start":"2017-03-01","end":"2017-03-16","name":"Test reason","className":"gap","color":"red"},
        {"start":"2010-06-01","end":"2012-20-01","name":"Newtech Media","className":"career","color":"green"},
        {"start":"2016-01-01","end":"2017-03-01","name":"Exlog Technologies","className":"career","color":"green"},
        {"start":"2009-01-01","end":"2009-20-01","name":"Infosys","className":"career","color":"green"}
        ]
}
我使用

var timeObj = $.parseJSON(data);
现在我想要最小的开始日期。这是来自上面的字符串,它是2009-01-01

如何从嵌套的json对象获取最小日期?


我试了很多,但没有得到确切的答案。我想有人可以帮我。

格式不完全正确,但应该是这样的

var smallDate = new DateTime(data.spans[0].start); 
$(data.spans).each(function(){
 var tempDate = new DateTime($this.start);
if(tempDate < smallDate)
{
smallDate =tempDate;
}
})

//smallDate will have th smallet date among the object 
var smallDate=new DateTime(data.span[0].start);
$(data.span).each(function(){
var tempDate=new DateTime($this.start);
if(tempDate
格式不完全正确,但应该是这样的

var smallDate = new DateTime(data.spans[0].start); 
$(data.spans).each(function(){
 var tempDate = new DateTime($this.start);
if(tempDate < smallDate)
{
smallDate =tempDate;
}
})

//smallDate will have th smallet date among the object 
var smallDate=new DateTime(data.span[0].start);
$(data.span).each(function(){
var tempDate=new DateTime($this.start);
if(tempDate
var数据={
“姓名”:“经历”,
“跨度”:[
{“开始”:“2013-01-01”,“结束”:“2015-12-31”,“名称”:“医疗急救”,“类名”:“间隙”,“颜色”:“红色”},
{“开始”:“2017-03-01”,“结束”:“2017-03-16”,“名称”:“测试原因”,“类名”:“间隙”,“颜色”:“红色”},
{“开始”:“2010-06-01”,“结束”:“2012-20-01”,“名称”:“Newtech Media”,“类名”:“职业”,“颜色”:“绿色”},
{“开始”:“2016-01-01”,“结束”:“2017-03-01”,“名称”:“Exlog Technologies”,“类名”:“职业”,“颜色”:“绿色”},
{“开始”:“2009-01-01”,“结束”:“2009-20-01”,“名称”:“Infosys”,“类名”:“职业”,“颜色”:“绿色”}
]
};
var dateArray=data.span.map(函数(项){
返回新日期(项目开始);
});
dateArray.sort(函数(a,b){
返回a-b;
});
var lowestDate=dateArray[0];
控制台日志(最低位)
var数据={
“姓名”:“经历”,
“跨度”:[
{“开始”:“2013-01-01”,“结束”:“2015-12-31”,“名称”:“医疗急救”,“类名”:“间隙”,“颜色”:“红色”},
{“开始”:“2017-03-01”,“结束”:“2017-03-16”,“名称”:“测试原因”,“类名”:“间隙”,“颜色”:“红色”},
{“开始”:“2010-06-01”,“结束”:“2012-20-01”,“名称”:“Newtech Media”,“类名”:“职业”,“颜色”:“绿色”},
{“开始”:“2016-01-01”,“结束”:“2017-03-01”,“名称”:“Exlog Technologies”,“类名”:“职业”,“颜色”:“绿色”},
{“开始”:“2009-01-01”,“结束”:“2009-20-01”,“名称”:“Infosys”,“类名”:“职业”,“颜色”:“绿色”}
]
};
var dateArray=data.span.map(函数(项){
返回新日期(项目开始);
});
dateArray.sort(函数(a,b){
返回a-b;
});
var lowestDate=dateArray[0];
控制台日志(最低位)
$(文档).ready(函数(e){
变量字符串={“名称”:“经验”,“跨度”:[{“开始”:“2013-01-01”,“结束”:“2015-12-31”,“名称”:“医疗急救”,“类名”:“间隙”,“颜色”:“红色”),{“开始”:“2017-03-01”,“结束”:“2017-03-16”,“名称”:“测试原因”,“类名”:“间隙”,“颜色”:“红色”},{“开始”:“2010-06-01”,“结束”:“2012-20-01”,“名称”:“新科技媒体”,“类名”:“职业生涯”,“颜色”:“绿色”}{“开始”:“2016-01-01”,“结束”:“2017-03-01”,“名称”:“Exlog Technologies”,“类名”:“职业”,“颜色”:“绿色”},{“开始”:“2009-01-01”,“结束”:“2009-20-01”,“名称”:“Infosys”,“类名”:“职业”,“颜色”:“绿色”}”;
var timeObj=$.parseJSON(字符串);
var最小值=新日期(timeObj.spans[0].开始);
$.each(timeObj.span,函数(索引,值){
var temp=新日期(值为开始);
如果(最小值>温度)
{
最小值=温度;
}
});
控制台日志(最小);
});
$(文档).ready(函数(e){
var字符串=“{”name:“experience”,“span:“{”start:“2013-01-01”,“end:“2015-12-31”,“name:“Medical emergency”,“className:“gap”,“color:“red”;“{”start:“red”;“2017-03-01”,“end:“2017-03-16”,“name:“Test reason”,“className:“gap”,“color:“red”;“start:“2010-06-01”,“end:“2012-20-01”,“name:“Newtech Media”,“className:”职业生涯”,“color:“green”;{”开始“:”2016-01-01“,”结束“:”2017-03-01“,”名称“:”Exlog Technologies“,”类名“:”职业“,”颜色“:”绿色“},{”开始“:”2009-01-01“,”结束“,”名称“:”Infosys“,”类名“:”职业“,”颜色“:”绿色“}”;
var timeObj=$.parseJSON(字符串);
var最小值=新日期(timeObj.spans[0].开始);
$.each(timeObj.span,函数(索引,值){
var temp=新日期(值为开始);
如果(最小值>温度)
{
最小值=温度;
}
});
控制台日志(最小);
});
查找数组中最小/最大/最酷的项是一种非常方便的方法,因为您只需要一行代码:

smallest = timeObj.spans.reduce(function(a,b) { return a.start < b.start ? a : b }).start
查找数组中最小/最大/最酷的项是一种非常方便的方法,因为您只需要一行代码:

smallest = timeObj.spans.reduce(function(a,b) { return a.start < b.start ? a : b }).start

你试过了吗?包括你认为的2009-01-01这是smallest@RanaGhosh,是的,我更新了..@初学者,我动态生成了json字符串,这是我的问题。我坚持我被问到的问题…尝试了很多,但没有效果..好的,我会检查每个答案..谢谢所有..你尝试过了吗?包括你尝试过的内容墨水2009-01-01这是smallest@RanaGhosh,是的,我更新了..@初学者,我动态生成了json字符串,这是我的问题。我坚持我被问到的问题…尝试了很多,但没有效果..好的,我会检查每个答案..谢谢大家。。