箭头函数返回参数作为对象

时间:2017-10-09 18:23:44

标签: javascript typescript arrow-functions

我想将箭头函数的参数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
    }
  ]
]

2 个答案:

答案 0 :(得分:1)

Javascript从字面上理解对象中的键。要使用变量,请将返回代码更改为以下内容:

return wordsPerLines.map(word => ({ [word] : index}))

括号让js知道它是一个变量,而不是字面上的'word'

答案 1 :(得分:1)

您必须将属性名称放在方括号中:

word => ({ [word] : index})

所以:

return wordsPerLines.map(word => ({ [word] : index}));

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