Javascript未定义的对象值
Javascript undefined object values
我遇到了一个未定义的关联数组值,不知道为什么!
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为整数。
In exists o["id"]返回Undefined,对于其中的每个对象,但是直接在对象创建之后,值就存在并且可以通过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;
}
下面也是很棒的代码片段:Demo Here
var list = {};
setValue("etshte", 393);
var result = containsKey("etshte");
alert(result);
function setValue(key, value) {
list[key] = value;
}
function containsKey(key) {
if (list[key] == undefined)
return false;
else
return true;
}
Demo For in循环不仅循环添加的成员,而且还循环存储在原型中的成员
修改:
if (o.hasOwnProperty("id") && o["id"] == id) { /* */ }
相关文章:
- 在CoffeeScript文件上运行Jasmine测试时,对象未定义错误
- JavaScript 对象 - 未定义的数字键文字
- 为什么页面方法对象未定义
- JavaScript对象表示嵌套对象未定义
- Javascript类构造的对象未定义
- JQuery TypeError:对象未定义(length=object.length,)
- 用于从许多带有“for”循环的URL中获取HTML信息的X射线使对象未定义
- 如何避免收到一条消息,指出对象未定义
- JavaScript 对象未定义
- JavaScript 对象未定义它是否在几年前工作
- 揭示模块模式:对象未定义
- 对象未定义/HTML使用jQuery输出
- 为什么子 html 对象未定义/空
- 提取 JSON 对象未定义
- 为什么这个带有最简单的构造函数的 javascript 对象未定义
- “对象”未定义日历.js
- 对象未定义到模块中,Nodejs javascript
- javascript对象未定义
- Twilio响应对象未定义,但没有错误
- 为什么"对象未定义”;在这种情况下没有抛出错误