如何使用React按最高价格升序?

时间:2016-03-25 12:13:09

标签: reactjs

我有一个接收优惠的组件,并希望设置最高的顶部。这是代码:

var Offerslist = React.createClass({
  _renderOffers: function(key) {
    var details = this.props[key];

    // TODO: set order of highest offer descending

    return (
      <li key={key} className="offer-of-item">
        &euro; {details.price}
        <a className="remove-offer" onClick={this._removeOffer}>X</a>
      </li>
    )
  },
  render : function() {
    return (
      <ol className="list-of-offers-per-item">
        {Object.keys(this.props).map(this._renderOffers)}
      </ol>
    )
  }
});

我想到用对象{price:123,offerid:'foo123'}填充数组,然后按价格使用.sort。但是我无法填充这样的数组,因为它从不会一次遍历所有对象。是否有一些内置的React方法可以做到这一点?

数据: data

1 个答案:

答案 0 :(得分:1)

对于普通数组,您可以使用sort方法。但由于您的offers是一个对象,而不是一个数组,因此您可以通过在keys对象中查找价格来对offers进行排序:

Object.keys(this.props)
   .sort((a, b) => ( this.props[a].price - this.props[b].price ))
   .map( this._renderOffers)