是否可以检查字符串的数组是否包含子字符串?我知道如何查找数组是否有完整的字符串匹配(使用$ .inArray,arr.includes,arr.indexOf等...),但这些字符串与字符串数组不匹配(至少对我而言) )。
如果我的<select multiple>
元素包含以下选项:
positive (selected)
positron (selected)
negative
negatron
我怎么能布尔我的多选项数组是否包含子串pos
,以表明选择中positve
和positron
都是?
我希望能够根据是否进行某些选择来向我的用户提供一些其他问题,但我不想写一堆if / then语句来涵盖各种字符串。< / p>
答案 0 :(得分:0)
您可以使用indexOf
检查数组元素是否包含子字符串
var testData = ['positive', 'negative']
testData.forEach(function(item) {
if (item.indexOf('pos') !== -1) {
console.log('Hava data')
}
})
&#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>
然后将扩展逻辑应用于过滤后的数组。