我试图在我的数组中搜索我输入的数字,但它并没有按预期工作。
在外部javascript:
<div>
<form>
<input type="radio" id="arrayRad11" name="array" value="11">Find Number:</input>
<input type="number" id="arrayValue" placeholder="Find Array Number"></input><br />
<input type="button" id="writeArray" value="Skriv tall"></input>
<input type="button" value="Reset" onClick="window.location.reload()"></input>
</form>
<p id="msg6"></p>
</div>
HTML code:
dataframe.to_html()
还上传到jsfiddle
答案 0 :(得分:2)
代码中似乎存在一些逻辑问题,但相当容易修复:
writeArray.onclick = findArray;
var array = [5, 3, 9, 12, 19, 15, 13, 6, 9, 2, 4, 7, 8, 17, 9];
function findArray() {
//The following script is a part of a 12 "else if" radio button form.
if (arrayRad11.checked) {
var searchNumber = document.getElementById("arrayValue").value;
var arrayResult = 0;
for (var i = 0; i < array.length; i++) {
if (array[i] == searchNumber) {
arrayResult++;
}
}
if (arrayResult > 0) {
msg6.innerHTML = "Found number " + searchNumber + ", " + arrayResult + " times.";
}
}
}
&#13;
<div>
<form>
<input type="radio" id="arrayRad11" name="array" value="11">Find Number:</input>
<input type="number" id="arrayValue" placeholder="Find Array Number"></input>
<br />
<input type="button" id="writeArray" value="Skriv tall"></input>
<input type="button" value="Reset" onClick="window.location.reload()"></input>
</form>
<p id="msg6"></p>
</div>
&#13;
我删除了你的runArraySequence()函数,因为你的JS中没有这个函数。它阻止了onclick的可访问性。
根据您的消息msg6,您似乎在寻找数组中数字的频率。我将arrayResult值设置为从0开始,如果==语句为true,则增加count。确保您知道==和===之间的类型关联差异。
我在for循环之外移动了你的第三个if语句,这样消息结果只会出现一次。
希望这有帮助!
答案 1 :(得分:1)
您可以使用Array.prototype.indexOf()方法
在数组中查找值[1,2,3].indexOf(2)
// will give you 1
要获得多个值,您需要在循环中使用indexOf
var find=2;
var i,arr=[1,2,3,2,7],entries=[];
while(-1<(i=arr.indexOf(find,i+1)))
entries.push(i);
console.log('I found '+ents.length+' entries of '+find+' in array:',ents)
//I found 2 entries of 2 in array: Array [ 1, 3 ]