根据数组的大小填充JS对象

时间:2018-01-28 11:44:23

标签: javascript node.js

编写以下节点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等等。

我怎样才能实现这个目标?

3 个答案:

答案 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)