箭头函数 return 参数作为对象的 属性
Arrow function return parameter as property of object
我想return我的箭头函数的参数word
作为对象键的属性。但是对象 returned 包含 属性 "word"
。
lines = ["first row","second row","third row"]
let newLines = lines.map((item, index)=> {
let wordsPerLines = item.split("\s");
return wordsPerLines.map(word => ({ word : index}))
}
);
console.log(newLines);
这是输出:
[
[
{
"word": 0
},
{
"word": 0
}
],
[
{
"word": 1
},
{
"word": 1
}
],
[
{
"word": 2
}
]
]
我想要这样的输出:
[
[
{
"first": 0
},
{
"row": 0
}
],
[
{
"second": 1
},
{
"row": 1
}
],
[
{
"third": 2
},
{
"row": 2
}
]
]
Javascript 从字面上获取对象中的键。要使用变量,请将 return 代码更改为以下内容:
return wordsPerLines.map(word => ({ [word] : index}))
中括号让js知道它是一个变量,而不是字面上的'word'
。
您必须将 属性 名称放在方括号中:
word => ({ [word] : index})
所以:
return wordsPerLines.map(word => ({ [word] : index}));
[ ]
可以包含任何表达式。已求值,结果的字符串值将是 属性 名称。
我想return我的箭头函数的参数word
作为对象键的属性。但是对象 returned 包含 属性 "word"
。
lines = ["first row","second row","third row"]
let newLines = lines.map((item, index)=> {
let wordsPerLines = item.split("\s");
return wordsPerLines.map(word => ({ word : index}))
}
);
console.log(newLines);
这是输出:
[
[
{
"word": 0
},
{
"word": 0
}
],
[
{
"word": 1
},
{
"word": 1
}
],
[
{
"word": 2
}
]
]
我想要这样的输出:
[
[
{
"first": 0
},
{
"row": 0
}
],
[
{
"second": 1
},
{
"row": 1
}
],
[
{
"third": 2
},
{
"row": 2
}
]
]
Javascript 从字面上获取对象中的键。要使用变量,请将 return 代码更改为以下内容:
return wordsPerLines.map(word => ({ [word] : index}))
中括号让js知道它是一个变量,而不是字面上的'word'
。
您必须将 属性 名称放在方括号中:
word => ({ [word] : index})
所以:
return wordsPerLines.map(word => ({ [word] : index}));
[ ]
可以包含任何表达式。已求值,结果的字符串值将是 属性 名称。