Све*_*иев 2 javascript arrays undefined
我正在尝试检查数组中的给定元素是否大于它的两个相邻元素,但是array [element + 1]返回 - undefined.但是,当我尝试使用array1 [(element-1)+2]时,它的工作正常.
这是数组:
var array1 = [1, 5, 56, 6, 7, 8, 12, 5, 1];
Run Code Online (Sandbox Code Playgroud)
我的代码:
function biggestOfThree(element){
if((element == 0)||(element == array1Length-1)){
document.write("There aren't 2 adjacent elements in the array");
}
else{
if((array1[element]>array1[element+1])&&(array1[element]>array1[element-1])){
document.write(array1[element] + " is bigger than it's adjacent elements")
}
else{
document.write(array1[element] + " isn't bigger than it's adjacent elements")
}
}
}
Run Code Online (Sandbox Code Playgroud)
...以及用户接收元素的功能:
function assign(){
var i_element = document.getElementById('indexOfTheElement');
var i = i_element.value;
biggestOfThree(i)
}
Run Code Online (Sandbox Code Playgroud)
您看到的错误是由于JavaScript的动态类型.使用parseInt
var i = parseInt(i_element.value);
Run Code Online (Sandbox Code Playgroud)
在+ 1仍然把它串并追加1到它.执行-1强制它将其视为int.因此你的结果.始终使用转换为intparseInt()
"1" + 1 = 11
"1" - 1 = 0
Run Code Online (Sandbox Code Playgroud)
正如@Elias所说,最好在使用parseInt时定义基数.
parseInt(string, 10)
^ radix
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |