js符号,{}它做什么?

时间:2018-05-18 18:27:14

标签: javascript

我们有以下内容:

const contactsByLetter = props.contacts.reduce((obj, contact) =>{
   const firstLetter = contact.name[0].toUpperCase()
   return{
      ...obj,
      [firstLetter]: [...(obj[firstLetter] || []),contact],
   }
},{})

最后一行的{}是什么?

我认为它可能会将contactsByLetter作为一个空对象启动,但我尝试了以下操作并且它没有工作:

let contactsByletter={}
contactsByLetter = props.contacts.reduce((obj, contact) =>{
   const firstLetter = contact.name[0].toUpperCase()
   return{
      ...obj,
      [firstLetter]: [...(obj[firstLetter] || []),contact],
   }
})

2 个答案:

答案 0 :(得分:1)

reduce函数的第二个参数是accumulators初始值。 例如

如果您希望列表中的数字总和。

[1,2,3].reduce((a, b) => a+b)给出了6。

[1,2,3].reduce((a, b) => a+b, 10)给出16,因为初始值为10.

答案 1 :(得分:0)

这是减少功能的第二个论点。

实施例

var initialValue = 0;
var sum = [{x: 1}, {x:2}, {x:3}].reduce(
    (accumulator, currentValue) => accumulator + currentValue.x
    ,initialValue
);

console.log(sum) // logs 6