在下面的代码中,activeProgs是一个包含程序对象的数组。我正在使用.map,因为我想拥有一个包含名称的数组 程序和令牌值。该令牌值是一个整数,对于每个程序,可以将其递增1,如下代码所示。
我的问题是,是否要具有包含程序名称和令牌但作为对象的相同数组。换句话说,我想要.map() 返回一个数组,但是该数组包含具有两个属性“ progName”和“ token”的对象。我可以执行以下操作吗?
activeProgs.map((prog)=> {progName: prog.getHeader().getName(), token: (++i)} )
请让我知道如何正确执行
代码:
activeProgs.map((prog)=> prog.getHeader().getName() + '->' + (++i))
答案 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)
}))