【问题标题】:Display Specific Result First in Array ReactJS在数组 ReactJS 中首先显示特定结果
【发布时间】:2016-05-27 04:31:58
【问题描述】:

我有一个返回名称列表的数据数组。我想对其进行排序,以便始终在列表中首先显示特定名称(“Fav Team”)。数组中有两个字段包含该值:homeTeamName 和 awayTeamName。我将如何对列表进行排序,以便在所有其他名称之前首先显示“Fav Team”?三元条件是处理它的正确过程吗?

    render: function() {
    var gameList = this.props.data.map(function(game) {
        var homeTeamName = game.home_team_name;
        var homeTeamScore = game.linescore.r.home;
        var awayTeamName = game.away_team_name;
        var awayTeamScore = game.linescore.r.away;

        var favTeam = homeTeamName || awayTeamName == "Fav Team" ? '':'';

        return (
            <li key={game.location} className="list-group-item">
                    <span className={parseInt(homeTeamScore, 10) > parseInt(awayTeamScore, 10) ? 'highlight':''}>
                        {homeTeamName}
                        <span className={'pull-right'}>{homeTeamScore}</span> <br />
                    </span>
                    <span className={parseInt(homeTeamScore, 10) < parseInt(awayTeamScore, 10) ? 'highlight':''}>
                        {awayTeamName}
                        <span className={'pull-right'}>{awayTeamScore}</span> <br />
                    </span>
            </li>   
        );
    });

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    你想在渲染之前sort你的列表,所以你可以这样:

    render: function() {
      var gameList = this.props.data.sort(function(game) {
        return (game.homeTeamName === "Fav Team" || game.awayTeamName === "Fav Team") ? -1 : 1;
      }).map(function(game) {
        var homeTeamName = game.home_team_name;
        var homeTeamScore = game.linescore.r.home;
        var awayTeamName = game.away_team_name;
        var awayTeamScore = game.linescore.r.away;
    
        return (
          <li key={game.location} className="list-group-item">
            <span className={parseInt(homeTeamScore, 10) > parseInt(awayTeamScore, 10) ? 'highlight':''}>
              {homeTeamName}
              <span className={'pull-right'}>{homeTeamScore}</span> <br />
            </span>
            <span className={parseInt(homeTeamScore, 10) < parseInt(awayTeamScore, 10) ? 'highlight':''}>
              {awayTeamName}
              <span className={'pull-right'}>{awayTeamScore}</span> <br />
            </span>
          </li>
        );
      });
    }
    

    【讨论】:

    • 在这种情况下,返回 0 或 1 的三元条件是做什么的?
    • 如果您查看sort 文档,它可以很好地解释它。返回 0、1 或 -1 决定排序方法应如何移动项目。
    • ===== 有区别吗?我尝试了这两种方法,它们似乎做同样的事情。但是,结果将“Fav Team”作为第三个选项,并且每次与它交互时元素都会发生变化(即 onClick 选项)。
    • 我试图改变它以便数组排序1 : 0 然后我用 .reverse() 方法反转它仍然没有运气。该数组在 safari 浏览器中不会更改,但在 chrome 中会更改。我清除了我的缓存和所有内容,它仍然在做同样的事情
    • 关于=====的区别,结帐stackoverflow.com/a/8044811/135133
    猜你喜欢
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 2012-05-18
    • 2019-06-16
    • 2022-01-06
    • 1970-01-01
    相关资源
    最近更新 更多