用到的对象特性:相同对象属性名会被覆盖

reduce((初始值,当前值,当前值对象)=>{},函数初始值)

reduce的第一个参数为函数,第二个参数为该函数的初始值,

该函数中有3个参数,初始值,当前值,(索引),当前元素所属的数组对象。

var arr = [{
    key: '01',
    value: '乐乐'

}, {
    key: '02',
    value: '博博'

}, {
    key: '03',
    value: '淘淘'
}, {
    key: '04',
    value: '哈哈'
}, {
    key: '01',
    value: '乐乐'
}]

var obj = {}; //  空对象
arr = arr.reduce(function(item, next) {
  obj[next.key] ? '' :  item.push(next)
 // 当前对象 存在key作为obj的属性名时给空,否则将当前值next push到初始值的数组中
  return item;
}, []); // 
console.log(arr);

当你的才华还撑不起你的野心时,你就应该静下心学习.