我期望下面的代码返回Chris Davis和Mike Trout。它只会返回Mike Trout。无法匹配多个值吗?请记住,我最终需要匹配30多个值。我也尝试使用indexOf,但伸缩性不好。

jsonData:
{ matchup: '@ LAA', name: 'Chris Davis' }
{ matchup: 'vs BAL', name: 'Mike Trout' }


jsonData.forEach(function (element, i) {
  if (_.isMatch(jsonData[i], {matchup: 'vs BAL' || 'vs LAA'}) == true) {
    console.log(jsonData[i].name)
  };
})

最佳答案

您可以在以下语句中使用||

if (_.isMatch(jsonData[i], {matchup: 'vs BAL'}) || _.isMatch(jsonData[i], {matchup: 'vs LAA'))


或更动态地,您可以存储所需的值并进行迭代:

var matches = ['vs BAL', 'vs LAA']
var isMatch = matches.some(function(match) {
  return _.isMatch(jsonData[i], {matchup: match})
})

if (isMatch) {
  console.log(jsonData[i].name)
}

关于javascript - 我可以_.isMatch多个值吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31910322/

10-11 13:12