Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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 按最新日期按对象数组排序不起作用_Javascript_Reactjs_Algorithm - Fatal编程技术网

Javascript 按最新日期按对象数组排序不起作用

Javascript 按最新日期按对象数组排序不起作用,javascript,reactjs,algorithm,Javascript,Reactjs,Algorithm,我需要按最新日期排序 这是sortByDate()函数-此排序列表当前将按最旧日期而不是最新日期对日期进行排序 sortByDate = () => { const { newsList } = this.state; newsList.sort((a, b) => { const c = new Date(a.date); const d = new Date(b.date); return c - d; });

我需要按最新日期排序

这是
sortByDate()
函数-此排序列表当前将按最旧日期而不是最新日期对日期进行排序

sortByDate = () => {
    const { newsList } = this.state;

    newsList.sort((a, b) => {
      const c = new Date(a.date);
      const d = new Date(b.date);
      return c - d;
    });

    this.setState({ newsList });
  };
这是需要排序的新闻列表:

hits: [
    {
      id: '14253463',
      doc_type: 'doc-test-type',
      lang: 'eng',
      author_name: 'Matt Davis',
      author_id: 'BBC Sport',
      date: '11 June 2019'
    },
    {
      id: '14253463',
      doc_type: 'doc-test-type',
      lang: 'eng',
      author_name: 'Matt Davis',
      author_id: 'BBC Sport',
      date: '10 June 2019'
    },
    {
      id: '14253463',
      doc_type: 'doc-test-type',
      lang: 'eng',
      author_name: 'Matt Davis',
      author_id: 'BBC Sport',
      date: '29 June 2019'
    }
]

当前
sortByDate
按最早的日期对我的数据进行排序,为什么他不能按预期工作?

这应该可以满足您的需要,首先使用最新的日期进行排序。还可以向排序函数传递sortorder参数,以指示所需的排序顺序

newsList=[{id:'14253463',doc类型:'doc test type',lang:'eng',作者姓名:'Matt Davis',作者id:'BBC Sport',日期:'2019年6月11日'},{id:'14253463',doc类型:'doc test type',lang eng作者姓名:'Matt Davis作者id:'BBC Sport',日期:'2019 6月10日'},{id:'14253463',doc_type:'doc test type',lang:'eng',作者姓名:'Matt Davis',作者id:'BBC Sport',日期:'2019年6月29日'}];
日志(“原始列表:”);
newsList.forEach(h=>console.log(新日期(h.Date.toLocaleDateString());
新闻列表.排序((a,b)=>{
常数c=新日期(a.日期);
const d=新日期(b.日期);
返回d-c;
});
log(“排序列表:”);

newsList.forEach(h=>console.log(new Date(h.Date).toLocaleDateString());
这应该满足您的需要,首先使用最新的进行排序。您还可以将sortorder参数传递给排序函数,以指示所需的排序顺序

newsList=[{id:'14253463',doc类型:'doc test type',lang:'eng',作者姓名:'Matt Davis',作者id:'BBC Sport',日期:'2019年6月11日'},{id:'14253463',doc类型:'doc test type',lang eng作者姓名:'Matt Davis作者id:'BBC Sport',日期:'2019 6月10日'},{id:'14253463',doc_type:'doc test type',lang:'eng',作者姓名:'Matt Davis',作者id:'BBC Sport',日期:'2019年6月29日'}];
日志(“原始列表:”);
newsList.forEach(h=>console.log(新日期(h.Date.toLocaleDateString());
新闻列表.排序((a,b)=>{
常数c=新日期(a.日期);
const d=新日期(b.日期);
返回d-c;
});
log(“排序列表:”);

newsList.forEach(h=>console.log(新日期(h.Date.toLocaleDateString()))
到目前为止你试过调试吗?嗯,交换比较器?
d-c
@VLAZ解决了这个问题,tnx。@VLAZ糟糕透了。谢谢你帮我解决这个问题:P@NickParsons不过,我真希望它没有进行适当的排序。在执行类似于
arr.sort().map()的操作时,对一个您不打算变异的数组进行变异,这是非常烦人的
到目前为止你试过调试吗?嗯,交换比较器?
d-c
@VLAZ解决了这个问题,tnx。@VLAZ糟糕透了。谢谢你帮我解决这个问题:P@NickParsons不过,我真希望它没有进行适当的排序。当您执行类似于
arr.sort().map()的操作时,对一个您不打算变异的数组进行变异,这是非常烦人的