Javascript Node.js:每个…;不工作

Javascript Node.js:每个…;不工作,javascript,node.js,foreach,v8,Javascript,Node.js,Foreach,V8,我想对每个。。。在带有Node.js(v0.4.11)的中 我是这样使用它的: var conf = { index: { path: { first: "index.html", pattern: "index/{num}.html" }, template: "index.tpl", limit: 8 }, feed: { path: "feed.xml", temp

我想对每个。。。在带有Node.js(v0.4.11)的中

我是这样使用它的:

var conf = {
   index: {
      path: {
         first: "index.html",
         pattern: "index/{num}.html"
      },
      template: "index.tpl",
      limit: 8
   },
   feed: {
      path: "feed.xml",
      template: "atom.tpl",
      limit: 8
   }
}

for each (var index in conf) {
  console.log(index.path);
}
我得到以下错误:

(配置中的var索引){
^^^^
node.js:134
抛出e;//process.nextTick error,或在第一次勾选时抛出“error”事件
^
SyntaxError:意外的标识符
在模块处编译(Module.js:397:25)
at Object..js(module.js:408:10)
在Module.load(Module.js:334:31)
at函数。_加载(module.js:293:12)
根据需要(module.js:346:19)

关于每个…在

中使用
的信息,不幸的是节点不支持每个…在
中使用
,即使它是在JavaScript 1.6中指定的。Chrome使用相同的JavaScript引擎,并且有类似的缺点

您必须满足于
array.forEach(函数(项){/*etc*/})

编辑:来自谷歌的官方网站:

V8实现了中指定的ECMAScript


在同一个MDN网站上,它说,
for each…in
在JavaScript 1.6中,它说它不在任何ECMA版本中-因此,推测它不在Node中。

在Node.js支持的ECMAScript版本中,没有
for each in
,目前只有firefox支持


需要注意的重要一点是,JavaScript版本只与Gecko(Firefox的引擎)和Rhino(总是落后于几个版本)相关.Node使用遵循ECMAScript规范的V8实现了从JavaScript 1.8到ECMAScript 5.1的转换器,这将允许您在webkit或Node上运行的代码中使用“for each”。

这可能是一个旧问题,但为了保持更新,JavaScript中有一个forEach方法可用于NodeJS。
for (var i in conf) {
  val = conf[i];
  console.log(val.path);
}
这是来自网站的链接。 举个例子:

     count = countElements.length;
        if (count > 0) {
            countElements.forEach(function(countElement){
                console.log(countElement);
            });
        }
对于那些使用php的用户:

//add this function
function foreach(arr, func){
  for(var i in arr){
    func(i, arr[i]);
  }
}
用法:

foreach(myArray, function(i, v){
  //run code here
});
与php版本类似:

foreach(myArray as i=>v){
  //run code here
}

V8实现了ECMAScript。MDN文档显示了
ECMA版本:none
有一个each.Sort.。
for each
是一种替代语法,应该像原始问题中那样工作,但实际上它显然在“JavaScript 1.6”中,但在ECMAScript规范中没有,因此并不总是受支持。(即使在支持它的地方,我还是喜欢你答案中的语法。)是的,确实有一个each:@nnnnnn有一个,但不是EcmaScript。在使用MDN时,您应该始终小心,因为它的版本JavaScript并没有得到广泛支持。不要忘记
对象。keys
要将对象的键转换为数组井,如果V8是这样运行的,我可以这样做。我可以在
中为…使用
,但是想要一些语法糖。谢谢你提供的信息。是的,这也是我想要的,但不是我想要的。现在我必须坚持这个版本。或者
console.log(conf[I].path)
如果你用这个函数迭代数组,那么
length
属性也会被包括在内,所以你需要防止它。