Javascript undefined object 值

标签 javascript undefined

我遇到关联数组值未定义,但无法弄清楚原因!

var list = new Array();

function addNewElement(id, n) {
    var obj = new Object();
    obj["id"] = id;
    obj["n"] = n;
    list.push(obj);
}

function exists(id) {
    for (var o in list) {
        if (o["id"] == id) {
            return true;
        }
    }
    return false;
}

id 是字符串,n 是整数。

对于其中的每个对象,存在 o["id"] 返回未定义,但在对象创建后,值立即存在并可通过 obj["id"] 访问。

最佳答案

这不是 JS for 循环的工作原理。您的 o 变量将成为索引,而不是值。应该是:

if (list[o]["id"] == id) {

除非你真的不应该在数组上使用for..in,所以它应该是:

function exists(id) {
    for (var i = 0; i < list.length; i++) {
        if (list[i]["id"] == id) {
            return true;
        }
    }
    return false;
}

关于Javascript undefined object 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16773927/

相关文章:

php - session 未定义索引

javascript - 类型错误:无法从未定义中读取属性 "0"

jQuery 尝试查找 href 时返回 "undefined"

javascript - 如何在 React Native 中重用 React JS 组件

javascript - 将 HTML 元素放在 map 图 block 上

javascript - 通过 websocket 集成 TradingView

javascript - angularjs foreach循环通过依赖于先前请求的http请求

javascript - react : Calling two event handlers onClick and changing style of child component

c++ - 默认参数中的 undefined variable 不好吗?

php - Laravel 4:PHP fatal error :调用未定义的方法 Blueprint::int()