get自JavaScript 中数组方法 reduce 的妙用之处

  • 需求:将数组转化成一个根据id值作为key,将数组每项作为value的对象进行查找

const userList = [
  {
    id: 1,
    username: 'john',
    sex: 1,
    email: 'john@163.com'
  },
  {
    id: 2,
    username: 'jerry',
    sex: 1,
    email: 'jerry@163.com'
  },
  {
    id: 3,
    username: 'nancy',
    sex: 0,
    email: ''
  }
];


###利用reduce实现

function keyByUsernameReducer(acc, person) {
    return {...acc, [person.id]: person};
}
const userObj = userList.reduce(keyByUsernameReducer, {});

###效果

{ '1': { id: 1, username: 'john', sex: 1, email: 'john@163.com' },
  '2': { id: 2, username: 'jerry', sex: 1, email: 'jerry@163.com' },
  '3': { id: 3, username: 'nancy', sex: 0, email: '' } }

写在后面,这是一个对于现在的我而言美得不想话的代码~~



不懂reduce 可以看看这个,https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce