Javascript对象数组访问属性未定义?

Javascript对象数组访问属性未定义?,javascript,arrays,json,Javascript,Arrays,Json,下面是我从firebug获得的一些输出 <div id='div_undefined'>[{"Region":"AD","Date":"","ArticleID":"abc-345"}, {"Region":"CD","Date":"","ArticleID":"abc-345"}]</div> [{“地区”:“广告”、“日期”:“文章ID”:“abc-345”},{“地区”:“CD”、“日期”:“文章ID”:“abc-345”}] 您可以在那里看到JS对象数组

下面是我从firebug获得的一些输出

<div id='div_undefined'>[{"Region":"AD","Date":"","ArticleID":"abc-345"},    {"Region":"CD","Date":"","ArticleID":"abc-345"}]</div>
[{“地区”:“广告”、“日期”:“文章ID”:“abc-345”},{“地区”:“CD”、“日期”:“文章ID”:“abc-345”}]
您可以在那里看到JS对象数组,并注意到div_未定义。如果你看下面的函数,我知道我的对象是被定义的,因为它正在打印出来。当我尝试访问ArticleID时,为什么项目[0]返回未定义

这是我函数中的代码

function myFunc(Items){
    var item = Items[0];
    Write("<div id='div_" + item.ArticleID + "'>" + Items + "</div>");
}
函数myFunc(项目){
var项目=项目[0];
写(“+项+”);
}

如果串联
生成此输出,则它是一个字符串(包含JSON),您必须首先将其解析为JS数据结构(本例中为数组):

函数myFunc(项目){
Items=JSON.parse(Items);
var项目=项目[0];
写(“+项+”);
//将输出
//[对象对象],[对象对象]
}
理想情况下,您应该在将值传递给函数之前执行此操作。我不知道你想要的是哪种输出,所以我只能给出这些建议


否则,
Items[0]
引用字符串的第一个字母(也是一个字符串),并且字符串没有
ArticleID
属性,因此您会得到
未定义的



您可能会发现这个问题也很有帮助:正如Matt所提到的(以及在另一个问题中),如果您想调试代码,请使用
控制台.log

如果串联
生成此输出,那么它是一个字符串(包含JSON),您必须首先将其解析为JS数据结构(本例中为数组):

函数myFunc(项目){
Items=JSON.parse(Items);
var项目=项目[0];
写(“+项+”);
//将输出
//[对象对象],[对象对象]
}
理想情况下,您应该在将值传递给函数之前执行此操作。我不知道您要的是哪个输出,所以我只能给出这些建议


否则,
Items[0]
引用字符串的第一个字母(也是一个字符串),并且字符串没有
ArticleID
属性,因此您会得到
未定义的



您可能会发现这个问题也很有帮助:正如Matt提到的(以及在另一个问题中),如果您想调试代码,请使用
console.log

为什么要这样调试,而不仅仅是
console.log(item)
?为什么要这样调试,而不仅仅是
console.log(item)
?这和以前一样有道理,我通过jQuery发送数据,我做了这个JSON.stringify(parameterArray),所以是的,我有一个字符串而不是一个对象。感谢你们指出这一点。这和以前我通过jQuery发送数据一样有道理,我做了这个JSON.stringify(parameterArray)是的,我有一根绳子,而不是一个物体。谢谢你们指出这一点。
function myFunc(Items){
    Items = JSON.parse(Items);
    var item = Items[0];
    Write("<div id='div_" + item.ArticleID + "'>" + Items + "</div>");
    // Will output
    // <div id='div_abc-345'>[object Object], [object Object]</div>
}