2016-06-01 9 views
0

ich benutze lodash, und ich versuche, ein Array von Zahlen in Strings zu konvertieren, aber nur die Zahlen konvertieren, da in meinem Array gibt es Null-Werte. Ich habe versucht, Karte von lodash in als Karte von Javascript zu verwenden, aber verwirrte die Nullwerte.konvertieren Array von Zahlen im Array von Strings mit Karte

Beispiel Array: [1245, 5845, 4585, null, null]

Code:

var meds = _.map(lines,'med_id').map(String); 

Ergebnis: [ "1245", "5845", "4585", „null ", "Null"];

Sollte sein: ["1245", "5845", "4585", null, null];

Antwort

3

Sie müssen den Typ des Werts testen, bevor String

var meds = _.map(lines, 'med_id').map(function(x) { 
    return typeof x == 'number' ? String(x) : x; 
}); 
2

Das liegt daran, String wird alles, was es dauert, in eine Zeichenfolge konvertieren. Sie müssen eine benutzerdefinierte Funktion erstellen, die nur dann eine Zeichenfolge generiert, wenn der Wert nicht null ist.

_.map(lines, 'med_id').map(function(x) { 
    if (x !== null) { 
    x = x.toString(); 
    } 
    return x; 
}); 
-1

Bei der Betrachtung Aufruf: https://lodash.com/docs#map

sieht es so aus:

function toInts(n){ 
    if(isNaN(n)){ 
     return null; 
    }else{ 
     return n; 
    } 
} 
_.map(lines,'med_id').map(lines,toInts); 

den Trick tun würde . (nicht getestet)