我正在检查数组的特定值是否存在于字符串中。为此,我实现了以下代码
function Check() {
var Value = 'I III';
var Opt = new Array("I", "II", "III", "IV");
for (var i = 0; i < Opt.length; i++) {
if (Value.indexOf(Opt[i]) > -1) {
alert("Hello");
}
}
}
如果字符串中存在值,它应该显示警告,但问题是它显示警报3次而不是2次,因为indexOf假设II作为字符串的一部分,因为III存在于字符串中。
答案 0 :(得分:6)
解决此问题的最简单方法是使用String.prototype.split
分隔Value
分隔符(例如,在每个空格处):
var value = 'I III'.split(' ')
var options = ['I', 'II', 'III', 'IV']
options.forEach(function(option) {
var index = value.indexOf(option)
if (index !== -1) {
// don't use `document.write` in general; it's just very useful in stack snippets
document.write(index + ' : ' + value[index])
document.write('<br>')
}
})
&#13;
一对夫妇注意到:
new Array()
;而是更喜欢数组文字:[]
答案 1 :(得分:0)
这是获取ans
的另一种方法功能检查(){
var Value = 'I III'.split(" "); var Opt = ["I", "II", "III", "IV"]; for (var i = 0; i < Opt.length; i++) { if (Value.indexOf(Opt[i]) > -1) { alert("Hello"); } } }Check();