我正在尝试遍历一个对象以确保没有未定义的属性。 我发现了this questionthis question并实现了以下代码,但它不起作用。

for (var property in p.properties) {
    if (p.properties.hasOwnProperty(property)) {
        if (typeof property == 'undefined') {
            p.properties[property] = '';
            //a breakpoint here will NOT be hit
        }
    }
}

但是,如果我明确检查我知道具有未定义值的那个,它确实有效:

if(typeof p.properties.st == 'undefined') {
    p.properties.st = '';
    //a breakpoint here WILL be hit
}

以下是获取数据的方式:

$.getJSON("data/stuff.json", function (data) {
    $.each(data.features, function (i, p) {
       //checking for undefined properties here
    }
});

#1楼 票数:4 已采纳

它应该是:

if (typeof p.properties[property] == 'undefined')

您正在测试属性名称是否未定义,这是不可能的; 您想测试该是否未定义。

  ask by JOATMON translate from so

未解决问题?本站智能推荐:

3回复

javascript:检查对象是否具有特定元素或属性的最佳方法?

假设我有这个: var person = { "name": "John Doe", "email": "john.doe@example.com" }; 该对象只有两个元素,分别是name和email 。 有些人也有age ,但是这个人没有。 最好的检查方法是什么? if
2回复

检查对象属性时与未定义或“未定义”的比较。 有什么区别?

我遇到了undefined和"undefined"之间的区别,我试图理解它。 我正在检查对象的属性是否已定义。 在第一个示例中,我检查了属性是否未定义。 以下所有测试的评估结果均为true。 我使用"undefined"还是undefined都没关系。 var tes
1回复

如何检查嵌套对象属性在Javascript中是否未定义?

我有一个Javascript对象,并且我很努力地检查是否未定义postsome的循环。 这是我的对象: 问题是,我不能引用indexA , indexAB或postsome直接。 全部将是变量。 这是我正在尝试的: 因此,当我使用indexAB硬编码时,它可以工作,但是
3回复

无法在对象中动态设置属性

我的目标是动态设置name,hidden和no_parent之类的属性,但是它一直在给我: TypeError:无法设置未定义的属性“名称” 即使我在通过参数传递它之前初始化了scorcroot 。 这是代码:
1回复

javascript对象属性日志未定义

好的,所以我在js文件的顶部声明了一个js对象,在底部声明了一个函数,该函数正在创建属性并向其中添加一个值,但是当我进入控制台时,在另一个函数中登录新属性将返回未定义,但如果我记录整个对象,则显示该对象,并且其值在下面的新属性是代码: 我在这里做错了什么???
1回复

尝试访问 javascript 对象的属性时未定义属性

我对这个问题感到不知所措,无法弄清楚。 我正在解析一个包含 5 行的示例 csv(使用 csv-parser nodejs 模块),所有 4 个对象的所有第一个属性都未定义。 我在这里打印了对象(obj 实例): 在 obj 上执行 JSON.stringify 时,结果如下: 当我执行
1回复

对象属性出现未定义

通过递归,我以数据库查询结果的形式将数据添加到 obj['prop'] 属性。 let obj = {}; if (obj['prop'] == undefined) { obj['prop'] = {}; } console.log(obj); 为什么这不起作用? 我也试
1回复

用创建的对象调用另一个函数后,Javascript创建的对象属性值未定义

我知道这可能是一个愚蠢的问题,但是我是javascript新手,因此希望您能提供一些指导。 我创建了以下notificationSocketEventHandler对象: 该事件处理程序用于侦听来自套接字的通知,因此设置为 事件原型的定义如下: 我遇到的问题是,后n