在ajax请求的成功回调中,我得到一个对象,它是对象数组(poList)。我想遍历此列表,如果status属性是某些内容,请执行某些操作。

在下面的示例中,response.PoList是一个有效的数组对象,其中包含两个项目,而x0(在调试器中,我可以将鼠标悬停在PoList上并且可以工作);但是,status不存在(即,此if语句始终为false)。我在这里做错了什么

for (var x = 0; x < response.PoList.length; x++) {
    if (response.PoList[x].Status == 'Not edited') {
        response.PoList[x].StatusNum = 1;
    } else {
        response.PoList[x].StatusNum = 3
    }
}


编辑

请参见下面的屏幕截图,我认为这不是区分大小写的问题。因此,突出显示的是response.PoList(而不仅仅是response),x当前是0,如果将鼠标悬停在Status上,我什么也收不到(没有“ undefined”工具提示或其他内容)

最佳答案

您的代码按提供的方式工作-取决于它是否实际与您的数据匹配。

Live Demo

我根据您的代码制作了这个示例。如果您的响应对象不同,那么是的,您做错了什么。

另外,我会回声Mr. Zimmerman's comment;这很容易成为大写问题。

response = {
    PoList: [
        {
            foo: 'bar',
            Status: 'edited'
        },
        {
            foo: 'baz',
            Status: 'Not edited'
        },
        {
            foo: 'barbar',
            Status: 'Not edited'
        }
    ]
};

for (var x = 0; x < response.PoList.length; x++) {
    if (response.PoList[x].Status === 'Not edited') {
        response.PoList[x].StatusNum = 1;
    } else {
        response.PoList[x].StatusNum = 3;
    }
}

07-24 20:27