如何转换:
const array = [10, 0, 90, 80, 50, 0, 60];
let id = 1;
const studentScores = array.map(function(score, index){
return { [index]: score, student_id: id }
});
console.log(studentScores)
进入胖箭头语法:
const studentScores = array.map((score, index) => { [index]: score, student_id: id } );
我的尝试抛出错误:
SyntaxError:意外的令牌:
答案 0 :(得分:4)
您必须将对象文字加上括号以说服解析器 是对象文字:
const studentScores = array.map((score, index) => ({ [index]: score, student_id: id }) );
通过将其包装在括号中,解析器被强制将其解释为表达式而不是语句块。 {
字符具有这种歧义,当它是语句中的第一个东西时,解析器总是假设"语句块"是他们所看到的。
答案 1 :(得分:2)
要隐式返回带箭头功能的对象,请用括号括起来:
const studentScores = array.map((score, index) => ({ [index]: score, student_id: id }) );