如何迭代对象内的数组?

我有一个config.json文件:

{ "test": { "maths": [ "core", "core2" ] } } 

在我的index.js中,我想访问对象'test',并遍历每个math元素。

我是新来的arrays,所以仍然试图找出他们如何工作。 这种方法有什么问题? (我知道这是行不通的)

 var CONFIG = require('./config.json') var fn = CONFIG.test.maths fn.forEach(function(value){ console.log(value); }); 

另外,这样做的正确方法是什么?

尝试改变config.js

 module.exports = { "test": { "maths": [ "core", "core2" ] } }; 

就目前而言 – 您的模块不会导出任何内容。

更新:如果你喜欢.json – 这个方法不会工作,因为.json不能被导出(但是可以在node中被需要,请参阅如何使用Node.jsparsingJSON? ),它可以用.js文件作为模块。 而且你也必须改变这个部分:

 require('./config.js') 

Update2:它像index.js一样工作

 var CONFIG = require('./config') var fn = CONFIG.test.maths fn.forEach(function(value){ console.log(value); }); 

config.json

 { "test": { "maths": [ "core", "core2" ] } } 

在我的节点v5.3.0

要解决这个问题,请将config.js文件重命名为config.json(对于命名约定)

更改:

 var CONFIG = require('./config') 

至:

 var CONFIG = require('./config.json') 

原因是需要一个文件需要确切的文件名,包括扩展名

3可能的解决scheme,select一个最适合你的:

  1. config.js的文件扩展名更改为config.json
  2. 读取文件,并将其parsing为JSON: var CONFIG = JSON.parse(require('fs').readFile('./config.js'));

  3. 按照Anton的build议,将该文件设置为导出JSON而不是普通JSON的模块

您可以简单地使用JQuery方法getJSONJson加载到Javascript中

 `$.getJSON( "config.json", function( data ) { console.log(data); var val = data.test.maths val.forEach(function (d) { console.log(d); }) });`