2017-08-20 3 views
0

Ich habe folgendes;charCodeAt() innerhalb der Kartenfunktion, die das ursprüngliche Array zurückgibt

function rot13(str) { 
var result = str.split(""); 
    result.map(function(val) { 
    return val.charCodeAt(); 
    }); 
} 
rot13("SERR PBQR PNZC"); 

wenn ich dies aber das zurückgegebene Array ausgeführt ist das gleiche wie die Eingangsarray

["S", "E", "R", "R", " ", "P", "B", "Q", "R", " ", "P", "N", "Z", "C"] 

Könnte jemand mir helfen zu verstehen, warum dies nicht funktioniert?

+1

hinzufügen 'return' vor' result.map (... ' –

+1

' result.map' gibt ein neues ARRAY .. versuchen 'var newArray = result.map ......' - oh, ja, was @RudolfManusadzhian sagte, ist genauer: p –

+0

beachten Sie 'das zurückgegebene Array'. .. rot13 gibt undefined zurück, daher gibt es kein zurückgegebenes Array –

Antwort

2

Array.map erstellt ein neues Array und nicht das ursprüngliche Array mutieren, so haben Sie es explizit zurückgeben oder es an einer Variablen zuweisen:

function rot13(str) { 
var result = str.split(""); 
return result.map(function(val) { 
    return val.charCodeAt(); 
}); 
} 
Verwandte Themen