Reactjs - 根据日期对产品数组进行排序

时间:2017-07-29 08:06:17

标签: reactjs

我想从产品数组中排序日期(日期是产品中的字段之一)。请建议我。我正在使用ReactJS。

请找到正在使用的代码。

render() {

          let sortedDate = this.state.item.sort((a, b) => Date.parse(new Date(a.expected_ship_date("/").reverse().join("-"))) - Date.parse(new Date(b.expected_ship_date("/").reverse().join("-"))));
          let sortedDate1 = this.state.item.sort((a, b) => new Date(a.expected_ship_date) - new Date(b.expected_ship_date));

        return (
            <tr>
                <td><input name="line_number" type="text" value={ this.state.item.line_number } disabled={ this.props.mode }  className="form-control" onChange={ this.handleInputChange }/> </td>
                <td><input name="requested_ship_date" type="date" value={ this.state.item.expected_ship_date } disabled={ this.props.mode }  className="form-control" onChange={ this.handleInputChange }  /></td>

                <td>{sortedDate.map( (c, i) => <div>{c.expected_ship_date}</div>)}</td>
            </tr>

        );
}

1 个答案:

答案 0 :(得分:1)

要进行排序,您需要将日期转换为epoch日期,然后尝试排序。 我建议您使用moment将日期转换为epoch

安装:

npm install --save moment

代码:

import moment from 'moment'

let sortedDate = this.state.item.sort((a, b) => moment(a.expected_ship_date).valueOf() - moment(b.expected_ship_date).valueOf());