Array.prototype.map = function (callback) {const array = this;return array.reduce((acc, cur, index) => {acc.push(callback(cur, index, array));return acc;}, []);
}; 
测试:
var m = [1, 2, 3, 4, 5].map(function (v, i, arr) {return v + v;
});
console.log(m); 
 
reduce案例
var array = [
   {
     selector: "sss",
     rules: "rrrr",
   },
   {
     selector: "sss2",
     rules: "rrr3",
   },
 ];
function transform(array, key, value) {
   return array.reduce((obj, item) => {
     obj[item[key]] = (obj[item[key]] || []).concat(item[value]);
     return obj;
   }, {});
 }
var tree = transform(array, "selector", "rules");
console.log(tree);