javascript - Array[element+1] 返回未定义?

标签 javascript arrays undefined

我正在尝试检查数组中的给定元素是否大于它的两个相邻元素,但 array[element+1] 返回 - undefined。但是,当我尝试使用 array1[(element-1)+2] 时,它工作得很好。

这是数组:

var array1 = [1, 5, 56, 6, 7, 8, 12, 5, 1];

还有我的代码:

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")
        }
    }

}

...以及用户接收元素的函数:

function assign(){
var i_element = document.getElementById('indexOfTheElement');
var i = i_element.value;
    biggestOfThree(i)
}

最佳答案

您看到的错误是由于 JavaScript 的动态类型。使用 parseInt

var i = parseInt(i_element.value);

+ 1 仍然将其视为一个字符串并在其后附加 1。执行 -1 会强制它认为它是一个 int。因此你的结果。始终使用 parseInt()

转换为 int
"1" + 1 = 11
"1" - 1 = 0

正如@Elias 所说,最好在使用 parseInt 时定义基数。

parseInt(string, 10)
                  ^ radix

关于javascript - Array[element+1] 返回未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13199078/

相关文章:

javascript - 在 meteor 中插入嵌套对象

javascript - 使用 Video.js 在 YouTube 视频上预滚动 VAST

Javascript持久化>逻辑

java - 从字符串创建数组

javascript - 为什么我的计算器得到未定义的结果?

javascript - 类型错误:行未定义

javascript - 如何通过 JQuery 修改样式属性?

javascript - $(window).scrollTop() 与 $(document).scrollTop()

java - 如何排序忽略大写的数组?

Javascript !undefined 是真的吗?