我有这个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代码中迭代完成?
答案 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。