如何遍历对象内的数组?

时间:2016-06-22 12:20:50

标签: javascript node.js

我有一个config.json文件:

Socket

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

我是数组的新手,所以仍然试图弄清楚它们是如何工作的。这种方法有什么问题? (我知道它不起作用)

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

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

4 个答案:

答案 0 :(得分:2)

尝试将config.js更改为

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

现在看来 - 您的模块不会导出任何内容。

更新:如果您更喜欢.json - 此方法无效,因为.json无法导出(但在节点中可能需要它,请参阅How to parse JSON using Node.js?),它使用.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

答案 1 :(得分:0)

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

变化:

var CONFIG = require('./config')

要:

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

原因是要求文件需要包含扩展名

的确切文件名

答案 2 :(得分:0)

3个可行的解决方案,选择最适合您的解决方案:

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

  3. 将文件设为导出JSON而非普通JSON的模块,如Anton所建议的那样

答案 3 :(得分:0)

您只需使用JQuery方法 getJSON Json 加载到 Javascript

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