Javascript 如何按日期对数组排序,但缺少第一个数组项

Javascript 如何按日期对数组排序,但缺少第一个数组项,javascript,arrays,date,object,Javascript,Arrays,Date,Object,我想按日期对数组排序。但是忽略数组中的第一项。任何帮助都将不胜感激 我目前有: articles.sort(function(a,b){ return new Date(b.published) - new Date(a.published); }); 我的数组如下所示: [ {id: 1, published: Mar 12 2012 08:00:00 AM}, {id: 2, published: Mar 9 2012 08:00:00 AM}, {id:

我想按日期对数组排序。但是忽略数组中的第一项。任何帮助都将不胜感激

我目前有:

articles.sort(function(a,b){
    return new Date(b.published) - new Date(a.published);
});
我的数组如下所示:

[
    {id: 1, published: Mar 12 2012 08:00:00 AM}, 
    {id: 2, published: Mar 9 2012 08:00:00 AM},
    {id: 3, published: Mar 15 2012 08:00:00 AM},
    {id: 4, published: Mar 22 2012 08:00:00 AM},
    {id: 5, published: Mar 8 2012 08:00:00 AM}
];
我只需要按id 2-5的日期对所有内容进行排序

我所拥有的一切


感谢

忽略数组中的第一项,在
切片
d数组上排序,然后与第一项合并。还要注意,时间戳需要是一个字符串-当前它无效

const articles=[{id:1,发表:“2012年3月12日08:00:0”},{id:2,发表:“2012年3月9日08:00:0”},{id:3,发表:“2012年3月15日08:00:0”},{id:4,发表:“2012年3月22日08:00:0”},{id:5,发表:“2012年3月8日08:00:0”};
const res=[].concat(articles[0],articles.slice(1).sort({published:a},{published:b})=>新日期(a)-新日期(b));
控制台日志(res)

。作为控制台包装{max height:100%!important;top:auto;}
然后,您可以移动第一行,并在排序后读取

var文章=[
{id:1,出版:“2018-01-09”},
{id:2,出版:“2019-01-01”},
{id:3,出版日期:“2019-01-04”},
{id:4,出版:“2019-01-03”},
{id:5,已出版:“2019-01-02”}
];
var first=articles.shift();
文章排序((a,b)=>{
返回新日期(b.已发布)-新日期(a.已发布);
});
物品。未移位(第一);
控制台日志(文章)使用
shift()
移除第一个元素,并
unshift()
将其放回第一个位置:

var first = articles.shift();
articles.sort(function(a,b){
    return new Date(b.published) - new Date(a.published);
});
articles.unshift(first);

如果
id
1
匹配,您只需返回
1
即可将
id:1
从您的

let dates=[{id:1,发布日期:'2012年3月12日08:00:00 AM',{id:2,发布日期:'2012年3月9日08:00:00 AM',{id:3,发布日期:'2012年3月15日08:00:00 AM',{id:4,发布日期:'2012年3月22日08:00:00 AM',{id:5,发布日期:'2012年3月8:00:00 AM';
让结果=日期。排序((a,b)=>
a、 id==1 | | b.id==1?1:新日期(a.发布)-新日期(b.发布))

console.log(result)
您的函数依赖于您提供的数组中不存在的
published
属性。请根据需要更新您的帖子。是的,谢谢,我已经对其进行了修改。您想在排序后或排序前忽略数组中的第一个元素吗。我正在输入慢速=)