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