2010-12-11 14 views
2
var place = [] 

place[0] = "Sant Marti de Canals"; 
place[1] = "Catalonia"; 
place[3] = ""; 
place[4] = "Spain"; 

placeTitle = place.join(","); 

Stromausgang gesetzt wird, ist "Sant Marti de Canals, Katalonien ,,, Spanien"javascript prüfen, ob Array-Schlüssel

wie kann es "Sant Marti de Canals, Katalonien, Spanien" sein

Antwort

2

Das Schreiben Ihres eigenen Codes kann helfen

var place = [] 

place[0] = "Sant Marti de Canals"; place[1] = "Catalonia"; place[3] = ""; place[4] = "Spain"; 

var placeTitle =''; 
for(var test in place) { 
    placeTitle += place[test]!=''?place[test]+',':''; 
} 
placeTitle = placeTitle.substr(0,placeTitle.length-1) 
+0

und entfernen Sie dann das ',' am Ende. –

3

Sie können auch eine Filterfunktion definieren, die in vielen anderen Situationen nützlich ist.

Array.prototype.filter = function(p) { 
    var a = []; 
    p = p || function (x) {return x;} 
    for (var i = 0; i<this.length; ++i) { 
     if (p(this[i])) { 
      a.push(this[i]); 
     } 
    } 
    return a; 
} 

... 

placeTitle = place.filter().join(', '); 
+1

Ich brauche es nicht. Die leere Zeichenfolge wird in 'false' konvertiert, sodass sie nicht im Ergebnisarray enthalten ist. Was ich nicht berücksichtige (da es in diesem Fall nicht notwendig ist) ist "0", was (wenn es vorhanden wäre) ebenfalls herausgefiltert würde. – outis

0
placeCopy=[]; 
for(var i=0;i<place.length;i++){ 
    if(typeof place[i] != 'undefined' && place[i].length > 0){ 
    placeCopy.push(place[i]); 
    } 
} 
placeTitle = placeCopy.join(",");