在箭头函数中使用 ComputedPropertyName 创建一个对象字面量
Create an object literal with ComputedPropertyName in arrow function
如何转换:
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: Unexpected token :
您必须将对象字面量括起来以说服解析器它是一个对象字面量:
const studentScores = array.map((score, index) => ({ [index]: score, student_id: id }) );
通过将其括在括号中,解析器被迫将其解释为表达式,而不是语句块。 {
字符有歧义,当它是语句中的第一件事时,解析器总是假设 "statement block" 就是它所看到的。
要隐式 return一个带箭头函数的对象,用括号括起来:
const studentScores = array.map((score, index) => ({ [index]: score, student_id: id }) );
如何转换:
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: Unexpected token :
您必须将对象字面量括起来以说服解析器它是一个对象字面量:
const studentScores = array.map((score, index) => ({ [index]: score, student_id: id }) );
通过将其括在括号中,解析器被迫将其解释为表达式,而不是语句块。 {
字符有歧义,当它是语句中的第一件事时,解析器总是假设 "statement block" 就是它所看到的。
要隐式 return一个带箭头函数的对象,用括号括起来:
const studentScores = array.map((score, index) => ({ [index]: score, student_id: id }) );