迭代对象并将每个属性输入到函数中

时间:2016-08-26 09:30:27

标签: node.js iteration javascript-objects

我有这个node.js对象。

DataObj =
{ 
    ID: { data: '1' },
    IS_PRESENT: { data: '1' },
    DATA_TYPE: { data: '1' }
}
;

我有一个函数可以将DataObj的每个属性作为参数。

function processDataObj(DataObj_property)
{
    //blah blah
}

我想迭代对象DataObj中的所有属性,并将每个属性作为参数放在函数processDataObj()中。

喜欢的东西;

processDataObj(ID: { data: '1' });
processDataObj(IS_PRESENT: { data: '1' });
processDataObj(DATA_TYPE: { data: '1' });

如何在node.js代码中迭代完成?

3 个答案:

答案 0 :(得分:0)

processDataObj(ID: { data: '1' });

参数无效。如果你想发送像

这样的对象
processDataObj({ID: { data: '1' }});

然后

var DataObj =
{ 
    ID: { data: '1' },
    IS_PRESENT: { data: '1' },
    DATA_TYPE: { data: '1' }
};


function processDataObj(obj) {
  console.log(obj);
}


Object.keys(DataObj).forEach(function(val, index, arr) {
  var data = {};
  data[val] = DataObj[val]
  processDataObj(data);
});
OR
for (obj in DataObj) {
  var data = {};
  data[obj] = DataObj[obj];
  processDataObj(data);
}

答案 1 :(得分:0)

您正在使用<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12</version> <inherited>true</inherited> <configuration> <forkMode>never</forkMode> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> </plugins> </pluginManagement> </build> 调用该函数,您将获得invalid parameters,我认为参数应该是这样的 -

syntax error

如果它是真的那么你可以通过这次迭代轻松搞定。

processDataObj({ID: { data: '1' }});

答案 2 :(得分:0)

由于您处于nodejs环境中,我建议您尝试新的语法糖:

Object.keys(DataObj).forEach((key, index, object) => processDataObj(object[key]));

您可能需要将"use strict";放在脚本的第1行。

这是es6语法。纯粹的javascript。