我可以_.isMatch多个值吗?

时间:2015-08-10 01:03:37

标签: javascript lodash

我期待以下代码返回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)
  };
})

1 个答案:

答案 0 :(得分:2)

您可以在语句中使用||,如:

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)
}