在Javascript中与for(in)循环不匹配ColdFusion

Jam*_*ler 3 javascript arrays coldfusion cfml coldfusion-2016

在ColdFusion中,我可以执行此操作

<cfscript>
  favorites = [{"broker_label":"spectra"}]; 

  for (afav in favorites)   {
    writedump(afav);
  }
</cfscript>
Run Code Online (Sandbox Code Playgroud)

我得到数组中的每一行。

如果我在Javascript中尝试

favorites = [{"broker_label":"spectra"}];   

for (var afav in favorites) {
  console.log(JSON.stringify(afav));
}
Run Code Online (Sandbox Code Playgroud)

我得到的只是0,或者确切地说是0。 "\"0\""

到底是怎么回事?

Mar*_*yer 6

如果要迭代数组的值,可以使用for…ofarray.forEach()

favorites = [{"broker_label":"spectra"}]; 

for (let fav of favorites)   {
            console.log(JSON.stringify(fav));
}

// or:

favorites.forEach(elem => console.log(JSON.stringify(elem)))
Run Code Online (Sandbox Code Playgroud)

for…in迭代属性(在数组的情况下为索引)。请注意,for…in当顺序很重要时,不建议与数组一起使用:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for ...中

注意:for ... in不应用于遍历索引顺序很重要的Array。