在ajax请求的成功回调中,我得到一个对象,它是对象数组(poList
)。我想遍历此列表,如果status
属性是某些内容,请执行某些操作。
在下面的示例中,response.PoList
是一个有效的数组对象,其中包含两个项目,而x
是0
(在调试器中,我可以将鼠标悬停在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;
}
}