在 2016/1/30 7:07, Kaustubh Karkare 写道:
I have recently come to feel the need for Object.map, which is like
Array.map,
except that it receive keys instead of indices.
Object.prototype.map = function(mapFn, context) {
return Object.keys(this)
.reduce(function(result, key) {
result[key] = mapFn.call(context, this[key], key, this);
return result;
}, {});
};
Without this, I frequently do the exact same thing as the above manually,
which leads to unnecessary code duplication.
Given that, it might make sense to match other methods from
Array.prototype
Object.map
Object.filter
Object.every
Object.some
Object.reduce
Object.find
Object.findKey // like Array.findIndex
Note that wherever applicable, the ordering is non-deterministic.
I'd rather add them as static methods of Object, e.g.
var result = Object.map(obj, function(value, key) { ... });
Because when I use an object as a map, I usually create it without
prototype (Object.create(null)),
to avoid unintentional access of properties on Object.prototype.
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss