javascript - JQuery - 获取关联数组的最小和最大日期

标签 javascript jquery arrays json

我有这个关联数组:

[{"start_date":"2018-11-20", "end_date":"2019-01-20", name:"NO Name"},
 {"start_date":"2018-10-10", "end_date":"2019-02-14", name:"Name No"},
 {"start_date":"2019-02-15", "end_date":"2019-03-01", name:"No Name No"}]

我想获得的值是 minimun 开始日期 2018-10-10maximum 结束日期 2019-03-01。我怎样才能得到它?

我尝试过的:

data = '[{"start_date":"2018-11-20", "end_date":"2019-01-20", name:"NO Name"},{"start_date":"2018-10-10", "end_date":"2019-02-14", name:"Name No"},{"start_date":"2019-02-15", "end_date":"2019-03-01", name:"No Name No"}]';

var end_date = new Date();
var start_date = new Date();


for (var i=0; i<data.length; i++) {
    if (data[i].end_date > end_date) {
        end_date = data[i].end_date
    }

    if (data[i].start_date > start_date) {
        start_date = data[i].start_date;
    }
}

console.log(end_date);
console.log(start_date);

最佳答案

您可以通过 String.localeComparestart_date 排序然后获取结果数组的第一个和最后一个元素:

const data = [{ "start_date": "2018-11-20", "end_date": "2019-01-20", name: "NO Name" }, { "start_date": "2018-10-10", "end_date": "2019-02-14", name: "Name No" }, { "start_date": "2019-02-15", "end_date": "2019-03-01", name: "No Name No" } ]

const result = data.sort((a,b) => a.start_date.localeCompare(b.start_date))
console.log(result[0], result[result.length-1])
// Just the dates
console.log(result[0].start_date, result[result.length-1].start_date)

关于javascript - JQuery - 获取关联数组的最小和最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53385098/

相关文章:

javascript - ionic /Angular : Read and Write Array in Local Storage

android - 如何使用 SharedPreferences 保存字符串数组?

PHP 不区分大小写的数组搜索函数

javascript - d3 - 标记日历示例

javascript - 如何在 Javascript 对象数组的最后一个对象之后附加几个新对象?

javascript - 需要帮助替换元素的特定参数

javascript - 使 JS 宽度为 : toggle has beautiful animation

javascript - 基于复选框类的单击功能不起作用

javascript - 网络 Storm “Let definition are not supported by current JavaScript version”

javascript - 将鼠标悬停在省略号上时显示范围标题