I ein Array haben, wie das Verfahren auf Prototyp als Rückruf Array.map definiert passieren
var arr = [' A ', ' b ', 'c'];
und ich möchte die Räume von jedem von dem Element aus dem Array trim
.
Es kann mit Array.map
als
arr.map(function(el) {
return el.trim();
});
Ich bin neugierig auf das Bestehen der trim
/toLowerCase
Funktion direkt an den map
als Callback-Funktion, wie arr.map(Math.max.apply.bind(Math.max, null)); getan werden, um das maximale Element erhalten von jedem Sub-Array oder arr.map(Number); um jedes Element auf Number zu setzen.
Ich habe
versuchtarr.map(String.prototype.trim.apply);
aber es wirft Fehler
Uncaught TypeError: Function.prototype.apply was called on undefined, which is a undefined and not a function
Ich erwarte, dass String.prototype.trim.apply
sollte für jedes Element in der Anordnung mit dem auf das Element von Array-Set-Kontext aufgerufen werden (weitergegeben an apply
);
Ich habe auch verschiedene Kombinationen von apply
, call
und bind
mit keinem Erfolg ausprobiert.
- Warum die Funktion auf Prototyp kann nicht referenziert werden, wenn
map
mit - Wie Funktion kann als Parameter auf
map
Ich bin verwirrt, warum arr.map (Funktion ... arbeitet während arr.map (String ... wirft "arr nicht definiert ist." – djechlin
In Firefox heißt es "TypeError:' Function.prototype.apply' genannt inkompatibel 'undefined'". – Xufox
var f = String.prototype.trim.call; f ('3'); wirft einen Fehler, obwohl String.prototype.trim .call ('3') funktioniert und typeof f === 'function'. Keine Ahnung warum. – djechlin