Javascript 使用for in循环获取特定属性

Javascript 使用for in循环获取特定属性,javascript,for-in-loop,Javascript,For In Loop,“for-in”循环是否仅限于显示属性名称及其第一个值,或者是否有办法让您看到它们的值?比如说, 如果我想检查位于“favBooks”对象中的“no1”对象内部的“titles”属性值,我可以在循环中使用for吗 我试着这样做: var favBooks = { no1:{Title:'Sidhartha',Author:'Hesse'}, no2:{Title:'Cosmos',Author:'Sagan'}, no3:{Title:'Idiot',Author:'Dostojev

“for-in”循环是否仅限于显示属性名称及其第一个值,或者是否有办法让您看到它们的值?比如说,

如果我想检查位于“favBooks”对象中的“no1”对象内部的“titles”属性值,我可以在循环中使用for吗

我试着这样做:

var favBooks = {
  no1:{Title:'Sidhartha',Author:'Hesse'},
  no2:{Title:'Cosmos',Author:'Sagan'},
  no3:{Title:'Idiot',Author:'Dostojevski'}
}
然后只调用带有for in的标题:

for(t in favBooks) console.log(favBooks[t.title]);
…但它返回未定义的

我知道还有其他方法可以做到这一点,但我的问题是:这是“for in”的局限性吗?只返回属性名及其第一个值,还是可以深入了解属性,如果是,如何


谢谢

问题已经解决了 日志(favBooks[t.title])`

除了使用“title”而不是“title”(javascript区分大小写),属性“title”不是对象favBooks的索引。你也许可以用favBooks[“no1”](我没有试过),但你绝对可以用favBooks.no1

乙二醇

所以我认为最后一行应该是:

for(t in favBooks) console.log(favBooks[t].Title); // logs the Title property
下面的函数通过一个javascript对象运行,并对其进行字符串表示。如果您对结果发出警告,它将显示对象的结构。 它还使用

for (X in el)
其中el是任何对象-无论是html文档中的DIV元素还是{a:b,c:d}类型的对象

也许这会有帮助

function dump(el) {
var s=""; //    
for (X in el) { 
      if (el[X]) {var sX=el[X].toString(); s+=X+": "+el[X] + "<br>\n"} 
    }
return s
}
功能转储(el){
var s=“”;//
对于(X在el中){
if(el[X]){var sX=el[X].toString();s+=X+“:“+el[X]+”
\n”} } 返回s }
问题就在眼前 日志(favBooks[t.title])`

除了使用“title”而不是“title”(javascript区分大小写),属性“title”不是对象favBooks的索引。你也许可以用favBooks[“no1”](我没有试过),但你绝对可以用favBooks.no1

乙二醇

所以我认为最后一行应该是:

for(t in favBooks) console.log(favBooks[t].Title); // logs the Title property
下面的函数通过一个javascript对象运行,并对其进行字符串表示。如果您对结果发出警告,它将显示对象的结构。 它还使用

for (X in el)
其中el是任何对象-无论是html文档中的DIV元素还是{a:b,c:d}类型的对象

也许这会有帮助

function dump(el) {
var s=""; //    
for (X in el) { 
      if (el[X]) {var sX=el[X].toString(); s+=X+": "+el[X] + "<br>\n"} 
    }
return s
}
功能转储(el){
var s=“”;//
对于(X在el中){
if(el[X]){var sX=el[X].toString();s+=X+“:“+el[X]+”
\n”} } 返回s }
也许您想要更接近PHP的东西
foreach($key=>$value的数组)


var favBooks=[//也许您想要更接近PHP的东西
foreach($key=>array$value)


var favBooks=[/
Title不是Title
(大写)。
favBooks[t.Title]
会很好。这个问题似乎离题了,因为问题基本上是一个打字错误。这不仅仅是一个打字错误,问题是从对象访问数据的方式。尝试更改
favBooks[t.Title]
to
favBooks[t]。Title
@AshishKumar,是的,这就是问题所在,我只是在堆栈上提问时才打字。但这是访问数据的方式,我不知道如何编写。非常感谢。干杯!
Title不是Title
(大写)。
favBooks[t.Title]
将很好地解决此问题似乎与主题无关,因为问题基本上是一个输入错误。这不仅仅是一个输入错误,问题是从对象访问数据的方式。尝试将
favBooks[t.title]
更改为
favBooks[t].Title
@AshishKumar,是的,这就是问题所在,我只是在堆栈上提问时才打字。但这是我不知道如何编写的访问数据的方式。谢谢你。干杯!