我想将箭头函数的参数word
作为对象键的属性返回。但返回的对象包含属性"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
}
]
]
答案 0 :(得分:1)
Javascript从字面上理解对象中的键。要使用变量,请将返回代码更改为以下内容:
return wordsPerLines.map(word => ({ [word] : index}))
括号让js知道它是一个变量,而不是字面上的'word'
。
答案 1 :(得分:1)
您必须将属性名称放在方括号中:
word => ({ [word] : index})
所以:
return wordsPerLines.map(word => ({ [word] : index}));
[ ]
可以包含任何表达式。这是评估的,结果的字符串值将是属性名称。