箭头函数 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}));

[ ] 可以包含任何表达式。已求值,结果的字符串值将是 属性 名称。