如何从.map

时间:2018-06-27 07:12:02

标签: javascript node.js

在下面的代码中,activeProgs是一个包含程序对象的数组。我正在使用.map,因为我想拥有一个包含名称的数组 程序和令牌值。该令牌值是一个整数,对于每个程序,可以将其递增1,如下代码所示。

我的问题是,是否要具有包含程序名称和令牌但作为对象的相同数组。换句话说,我想要.map() 返回一个数组,但是该数组包含具有两个属性“ progName”和“ token”的对象。我可以执行以下操作吗?

    activeProgs.map((prog)=> {progName: prog.getHeader().getName(), token: (++i)} )

请让我知道如何正确执行

代码

activeProgs.map((prog)=> prog.getHeader().getName() + '->' + (++i))

2 个答案:

答案 0 :(得分:1)

像这样:

activeProgs.map((prog) => ({progName: prog.getHeader().getName(), token: (++i)}) );

或者像这样:

activeProgs.map((prog) => {
    return {progName: prog.getHeader().getName(), token: (++i)} 
})

在第一个示例中,在{}周围加上括号会强制将其解析为包含对象文字的表达式。在您的代码中,它被解释为函数声明的一部分,从而使下一位成为语法错误。

第二个使这一点更加明确

答案 1 :(得分:0)

您与建议的示例相距不远,只需要将对象包装在方括号中,以便编译器理解您正在返回对象而不是声明函数体

activeProgs.map(prog => ({
  progName: prog.getHeader().getName(),
  token: (++i)
}))