902 Stimmen

Wie kann ich eine kommagetrennte Zeichenkette in ein Array umwandeln?

Ich habe eine kommagetrennte Zeichenkette, die ich in ein Array konvertieren möchte, damit ich sie in einer Schleife durchlaufen kann.

Gibt es irgendetwas, das dies ermöglicht?

Ich habe zum Beispiel diese Zeichenfolge

var str = "January,February,March,April,May,June,July,August,September,October,November,December";

Jetzt möchte ich dies durch ein Komma trennen und dann in einem Array speichern.

7 Stimmen

Ich wollte nur anmerken, dass dafür kein Jquery erforderlich ist, da dies Teil von Javascript selbst ist.

2 Stimmen

4 Stimmen

Was die Duplikate betrifft, so sind diese 18 Monate älter als die Frage, auf die verwiesen wird. Wenn überhaupt, ist die andere Frage nicht nur ein Duplikat, sondern bietet aufgrund der Regex-Anforderung eine extrem komplizierte Lösung für ein sehr einfaches Problem

19voto

user1386213 Punkte 811

Beachten Sie das Folgende:

var a = "";
var x = new Array();
x = a.split(",");
alert(x.length);

alarmiert 1

15voto

BJ Patel Punkte 6019

Übergeben Sie dieser Funktion eine kommagetrennte Zeichenkette und sie wird ein Array zurückgeben, und wenn keine kommagetrennte Zeichenkette gefunden wird, wird null zurückgegeben.

function splitTheString(CommaSepStr) {
    var ResultArray = null;

    // Check if the string is null or so.
    if (CommaSepStr!= null) {

        var SplitChars = ',';

        // Check if the string has comma of not will go to else
        if (CommaSepStr.indexOf(SplitChars) >= 0) {
            ResultArray = CommaSepStr.split(SplitChars);

        }
        else {

            // The string has only one value, and we can also check
            // the length of the string or time and cross-check too.
            ResultArray = [CommaSepStr];
        }
    }
    return ResultArray;
}

3 Stimmen

Anstatt nur einen Codeblock zu posten, bitte erklären warum dieser Code das gestellte Problem löst. Ohne eine Erklärung ist dies keine Antwort.

1 Stimmen

Dies ist die korrekteste Lösung, wenn Sie nicht sicher sind, dass die Zeichenkette Ihren geteilten Wert enthalten wird. Diese Funktion verhindert, dass die Split-Methode fehlschlägt, wenn die Zeichenkette kein Komma enthält (wie im obigen Beispiel).

1 Stimmen

Hinweis: Funktionen, die mit einem Großbuchstaben beginnen, sind in den meisten Fällen dafür gedacht, aufgerufen zu werden. Für Funktionen, die nicht dafür gedacht sind, aufgerufen zu werden, verwenden Sie am besten Kleinbuchstaben.

12voto

Kabb5 Punkte 3662

Hier ist eine Funktion, die eine Zeichenkette in ein Array umwandelt, auch wenn nur ein Element in der Liste vorhanden ist (kein Trennzeichen):

function listToAray(fullString, separator) {
  var fullArray = [];

  if (fullString !== undefined) {
    if (fullString.indexOf(separator) == -1) {
      fullArray.push(fullString);
    } else {
      fullArray = fullString.split(separator);
    }
  }

  return fullArray;
}

Verwenden Sie es so:

var myString = 'alpha,bravo,charlie,delta';
var myArray = listToArray(myString, ',');
myArray[2]; // charlie

var yourString = 'echo';
var yourArray = listToArray(yourString, ',');
yourArray[0]; // echo

Ich habe diese Funktion erstellt, weil split gibt einen Fehler aus, wenn in der Zeichenkette kein Trennzeichen vorhanden ist (nur ein Element).

5 Stimmen

Es wird kein Fehler ausgelöst, wenn das Trennzeichen nicht gefunden wird: 'echo'.split(',') gibt zurück. ['echo'] und ''.split(',') gibt zurück. [''] . Sie wird eine Fehlermeldung erhalten, wenn Sie x.split(',') wenn x keine Zeichenkette ist (auch wenn x es undefiniert o null ), denn es gibt keine split Funktion für andere Typen verfügbar.

0 Stimmen

Ah, ich sehe, dass ich in der Tat versucht habe, die split für ein undefiniertes Objekt, als ich meine listToArray-Funktion schrieb. Danke für den Hinweis...

9voto

Mubeen Khan Punkte 847
let str = "January,February,March,April,May,June,July,August,September,October,November,December"

let arr = str.split(',');

es wird sich ergeben:

["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]

und wenn Sie Folgendes umwandeln möchten in:

["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]

dies:

"January,February,March,April,May,June,July,August,September,October,November,December";

verwenden:

str = arr.join(',')

8voto

Andi AR Punkte 2428

Funktion zurückgeben

var array = (new Function("return [" + str+ "];")());

Es akzeptiert String und Objectstrings:

var string = "0,1";

var objectstring = '{Name:"Tshirt", CatGroupName:"Clothes", Gender:"male-female"}, {Name:"Dress", CatGroupName:"Clothes", Gender:"female"}, {Name:"Belt", CatGroupName:"Leather", Gender:"child"}';

var stringArray = (new Function("return [" + string+ "];")());

var objectStringArray = (new Function("return [" + objectstring+ "];")());

JSFiddle https://jsfiddle.net/7ne9L4Lj/1/

3 Stimmen

Textstrings weisen Fehler auf - SyntaxError: Unerwarteter Bezeichner Zahlenstrings sind ok. z.B.. var stringtext = "String, text, I, am"; var stringtextArray = (new Function("return [" + string text + "];")()); Ergebnis ist: SyntaxFehler: Unerwarteter Bezeichner

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X