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);