Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有不同键的对象的javascrip排序数组_Javascript_Sorting - Fatal编程技术网

Javascript 具有不同键的对象的javascrip排序数组

Javascript 具有不同键的对象的javascrip排序数组,javascript,sorting,Javascript,Sorting,我有以下对象数组: [ { "2019-10-01": false }, { "2020-04-01": true }, { "2020-02-01": true }, { "2018-01-01": false }, { "2019-12-01": true } ] 我想按日期对对象进行排序,日期是关键。最好的方法是什么?您可以使用它

我有以下对象数组:

[
    {
        "2019-10-01": false
    },
    {
        "2020-04-01": true
    },
    {
        "2020-02-01": true
    },
    {
        "2018-01-01": false
    },
    {
        "2019-12-01": true
    }
]
我想按日期对对象进行排序,日期是关键。最好的方法是什么?

您可以使用它来获取键,而不考虑它们的名称,并将日期字符串与

const arr=[
{
“2019-10-01”:错误
},
{
“2020-04-01”:正确
},
{
“2020-02-01”:正确
},
{
“2018-01-01”:错误
},
{
“2019-12-01”:正确
}
]
arr.sort((a,b)=>{
设[aDate]=Object.keys(a)
让[bDate]=对象。键(b)
返回aDate.localeCompare(bDate)
})

console.info(arr)
使用
Object.keys
从对象键获取数组,并使用
Date
实例进行排序

let数据=[
{
“2019-10-01”:错误
},
{
“2020-04-01”:正确
},
{
“2020-02-01”:正确
},
{
“2018-01-01”:错误
},
{
“2019-12-01”:正确
}
]
数据=数据。排序((a,b)=>
新日期(Object.keys(a)[0])-新日期(Object.keys(b)[0])
)

console.log(数据)
您可以这样做

var a=[
{
“2019-10-01”:错误
},
{
“2020-04-01”:正确
},
{
“2020-02-01”:正确
},
{
“2018-01-01”:错误
},
{
“2019-12-01”:正确
}
]
a、 排序((a,b)=>{
返回(新日期(Object.keys(a))-(新日期(Object.keys(b)))

})
对于
Date
构造函数中的单个数组
toString()
来说,这是一个巧妙的技巧,但是如果有多个键,您将很快遇到问题。不过,这可能对所有答案都是正确的