编写以下节点js代码,使用通过命令行传递的值填充state
对象:
州对象:
const state = {
prop1: null,
prop2: null,
prop3: null,
prop4: null,
prop5: null,
}
命令行参数:
args = message.content.slice(prefix.length).trim().split(" "),
命令格式:
?command prop1 prop2 prop3 prop4 prop5
将args值填充到state.properties:
的代码for (i in args) {
state.i = args[i];
logger.info("state.j:" + state.i)
logger.info("i:" + args[i])
}
我想要的是state.prop1
应该prop1
(由commandline
传递)
所以基本上,我的状态对象变成,
state.prop1 = prop1,state.prop2 = prop2
等等。
我怎样才能实现这个目标?
答案 0 :(得分:1)
我只是简单地减少对象文字的参数
cumsum(Connection == "Initial")
答案 1 :(得分:0)
另一种方法可以由for in
完成。如果没有let state = Object.assign({}, args);
循环,您只需
args
这会将{}
中的属性复制到新对象state
中,并将结果分配给Object.keys(state).forEach((key, index) => state[key] = args[index] || null)
对象。
<强>更新强>
{{1}}
答案 2 :(得分:0)
const state = {
prop1: null,
prop2: null,
prop3: null,
prop4: null,
prop5: null,
}
const c = Object.keys(state);
args = ['df', 'cf', 'ef']
for (let i in c) {
state[c[i]] = args[i]
}
console.log(state)