如何检查数组是否包含子字符串?

时间:2017-11-21 04:10:29

标签: javascript jquery arrays drop-down-menu substring

是否可以检查字符串的数组是否包含子字符串?我知道如何查找数组是否有完整的字符串匹配(使用$ .inArray,arr.includes,arr.indexOf等...),但这些字符串与字符串数组不匹配(至少对我而言) )。

如果我的<select multiple>元素包含以下选项:

positive (selected)
positron (selected)
negative
negatron

我怎么能布尔我的多选项数组是否包含子串pos,以表明选择中positvepositron都是?

我希望能够根据是否进行某些选择来向我的用户提供一些其他问题,但我不想写一堆if / then语句来涵盖各种字符串。< / p>

2 个答案:

答案 0 :(得分:0)

您可以使用indexOf检查数组元素是否包含子字符串

&#13;
&#13;
var testData = ['positive', 'negative']

testData.forEach(function(item) {
  if (item.indexOf('pos') !== -1) {
    console.log('Hava data')
  }
})
&#13;
&#13;
&#13;

答案 1 :(得分:0)

Array.prototype具有非常有用的.filter功能。

const arr = ['positive', 'positron', 'negative', 'negatron'];

function findMatches() {
  let searchVal = document.getElementById('test').value;
  let res = arr.filter(el => el.indexOf(searchVal) > -1);
  document.getElementById('result').innerHTML = res.join(', ');
}
<input type="text" id="test" />
<button type="button" onclick="findMatches()">Find</button>
<br /> Array: ['positive', 'positron', 'negative', 'negatron']<br />
<span id="result"></span>

然后将扩展逻辑应用于过滤后的数组。