Javascript/React.js 相当于 Ruby .select{ |x|健康)状况 }

标签 javascript for-loop reactjs

我在 javascript (React.j) 中编写了以下使用 for 循环的函数:

getOpponentTeam: function(playerTeamId){
  var matches = this.state.matches;
  var player_team = this.state.player.team.name
  for (i in matches){
    if (matches[i].home_team_id == playerTeamId){
      var result = player_team + " vs. " + this.getTeamName( matches[i].away_team_id )
    }
    else if (matches[i].away_team_id == playerTeamId){
      var results = this.getTeamName( matches[i].home_team_id ) + " vs. " + player_team
    }
    else {
      var result = "Not playing"
    }
    return result
  };
},

问题是,for 循环的工作方式,大多数时候它会返回“Not Playing”,即使“matches”包含满足条件的数据。这是因为for循环短路了。

有没有一种方法可以像在 ruby​​ 中那样通过说 matches.select{ |x| 来减少匹配数组某些条件}?

最佳答案

您的代码存在一些问题。

<强>1。 for 循环的错误使用。

您正在循环遍历一个数组,就好像它是一个对象一样。您需要使用以下实现:

for ( var i = 0; i < matches.length; i++) {
    if (matches[i].home_team === playerTeamId) {
        // etc
    }
}

<强>2。您将在第一次迭代中返回

正如 Nit 在评论中指出的那样,您将返回第一个循环,因此它无法继续。

<强>3。回答您想要的问题

我对Ruby不熟悉,但我想你可能会问 UnderscoreJS 中的过滤操作.

关于Javascript/React.js 相当于 Ruby .select{ |x|健康)状况 },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32741436/

相关文章:

php - 我可以使用 POST 向其他网站的页面发送请求吗?

javascript - 调用javascript对象自身的属性

javascript - 如何在 Gridster 中添加超过 15 行 (dsmorse gridster.js)

node.js - 动态生成的 Mocha 测试不在异步/等待上下文中执行

javascript - Promise 内 bcrypt 的 Promise {<pending>}

reactjs - 无法在 NPM 链接的库上设置断点

javascript - 如何使用 RequireJS 加载定义全局并依赖于另一个第三方库的 JS 库?

javascript - Promise 链中的 for 循环中的 Promise

python - 有条件地停止Python中for循环的迭代

javascript - bindActionCreators,React-Redux 中的@connect 和理解代码