有关在对数组进行排序之前更改数组值的问题

时间:2019-05-15 08:09:11

标签: javascript arrays reactjs

我正在开发React Web App。

在特定页面上输入后,用户将拥有其数组。

该数组如下所示: enter image description here

获取数组后,我想通过startedDate的值之一对数组求助

这是我的代码:


 sortedCard.forEach( item => {
      if(item.startedDate === null || item.expiredDate === null){
        item.startedDate = '9999'
      }else if(item.startedDate !== null){
        item.startedDate = item.startedDate.split('-')[1]+item.startedDate.split('-')[2]
      }
    } )

我尝试过地图,不起作用! 并将当前数组更改为硬编码的数组(当前数组是从服务器获取并由Redux传递的),它可以正常工作!

1 个答案:

答案 0 :(得分:0)

  

获取数组后,我想通过startedDate的值之一对数组求助

您可以使用sort()函数对对象数组进行排序:

const objs = [
    {
        id: 1,
        startedDate: '2019-05-01'
    },
    {
        id: 2,
        startedDate: '2019-05-03'
    },
    {
        id: 3,
        startedDate: '2019-04-10'
    },
    {
        id: 4,
        startedDate: '2019-01-21'
    },
]

objs.sort((a, b) => (a.startedDate > b.startedDate) ? 1 : ((b.startedDate > a.startedDate) ? -1 : 0)) 
console.log(objs)

此代码循环遍历数组中的每个对象,获取属性值startedDate,然后将其与数组中每个其他对象的startedDate进行比较,并相应地重新排列它们。