I have an array
var arr = [' A ', ' b ', 'c'];
and I want to trim
the spaces from each of the element from array.
It can be done by using Array.map
as
arr.map(function(el) {
return el.trim();
});
I'm curious about passing the trim
/toLowerCase
function directly to the map
as callback function, like arr.map(Math.max.apply.bind(Math.max, null)); to get the maximum element from each subarray or arr.map(Number); to cast each element to Number.
I've tried
arr.map(String.prototype.trim.apply);
but it is throwing error
Uncaught TypeError: Function.prototype.apply was called on undefined, which is a undefined and not a function
I expect that String.prototype.trim.apply
should be called for each element in the array with the context set to the element from array(passed to apply
);
I've also tried different combinations of apply
, call
and bind
with no success.
- Why the function on prototype cannot be referenced when using
map
- How function can be passed as parameter to
map
Function.prototype.apply
called on incompatibleundefined
”. – Towrey