2016-03-30 2 views
0

In meiner Anwendung muss ich einige Daten von JSON erhalten und in ein Array für die weitere Verwendung konvertieren.Ersetzen Array-Daten Sonderzeichen von JSON von Javascript

Und ich habe meine Codes zu erhalten und die Daten zu konvertieren:

var Persons = data.Persons; 
var PersonsArr = []; 

for (var i=0; i < Persons.length; i++){ 
    PersonsArr.push(Persons[i].word); 
    } 

Das ist ganz einfach, ich die api einfach anrufen und einen einzigen for-Schleife verwenden, um alles zu bekommen. Die herauskommen ist wie

PersonsArr=["peter","mary","tom"]; 

Dann ich es an ein Element anhängen, aber es hat „“ jeder der Daten zu teilen, und ich möchte es entfernen. So

ich versuchte .replace zu verwenden()

for (var i=0; i < Persons.length; i++){ 
    PersonsArr.push(Persons[i].word.replace(",", " ")); 
       } 

Aber es funktioniert nicht wie mein exceptation, bin ich die falsche apporch verwenden?

+1

Es anhängt sind keine Kommas. Das ist nur JavaScript, das das Array in einer Form druckt, die Sie lesen können. Aber es gibt keine Kommas intern im Array, so dass es Ihnen gut geht – Ibu

Antwort

1

Dann i append es an ein Element, aber es hat ""

Wenn ein Array als .innerHTML oder .textContent an ein html Element angehängt wird das Array in eine Zeichenfolge konvertiert wird, zum Beispiel, zu vergleichen, Ergebnisse von PersonsArr.toString().


Verwenden Array.prototype.join()

Syntax
str = arr.join([separator = ','])

Parameter

Separators
Optional. Gibt eine Zeichenfolge an, um jedes Element des Arrays zu trennen. Das Trennzeichen wird in eine Zeichenfolge konvertiert, wenn erforderlich ist. Wenn sie weggelassen werden, werden die Array-Elemente durch ein Komma getrennt. Wenn Trennzeichen eine leere Zeichenfolge ist, werden alle Elemente ohne Zeichen zwischen ihnen verbunden.

mit " " Leerzeichen als Parameter, wenn PersonArr zu Element als html

PersonArr.join(" ") 

var PersonsArr = ["peter", "mary", "tom"]; 
 
var div = document.querySelector("div"); 
 
var text = document.createElement("text"); 
 
text.textContent = PersonsArr.join(" "); 
 
div.appendChild(text);
<div></div>

0

nicht wissen, über den Rest, aber den Fehler verursachen könnte (die g steht für eine globale Änderung in der gesamten Zeichenfolge)

.replace(",", " ")) 

.replace(/,/g, " ")) 
0

Gut sein sollte, Wenn Sie versuchen, "," aus PersonsArr=["peter","mary","tom"]; zu entfernen, können Sie nicht. Weil das ein Array ist und so speichert es den Wert. Und es wird nicht durch die Daten hinzugefügt, die Sie von der API erhalten. Wenn Sie versuchen, auf personArr[0] zuzugreifen, wird peter zurückgegeben und es wird kein ',' angezeigt. Wenn Sie das nicht versuchen, lassen Sie es mich wissen.

+0

sollte ich verwenden .slice() – anson920520

+0

Es gibt keine "," gibt es tatsächlich. Aber wenn du es nicht sehen willst, dann lege es nicht in ein Array. 'var personArr =" "; für (var i = 0; i Max