2 Stimmen

Wie wird ein Array geparst und ein neues Array mit geparsten Werten erstellt?

Ich habe ein Array

var data = new Array("1111_3", "1231_54", "1143_76", "1758_12");

Jetzt möchte ich data[0] parsen, um 1111 zu erhalten.

var ids = new Array();
// example: ids = Array("1111", "1231", "1143", "1758");

und kopieren Sie alle IDs von data nach ids Array.

ist es möglich, es wie in PHP zu tun, oder muss ich Schleifen verwenden?

Danke.

3voto

Jacob Relkin Punkte 156445

Ganz einfach:

var ids = [];
for(var i = 0, j = data.length; i < j; ++i) {
   var idString = data[i];
   ids.push(idString.substring(0, idString.indexOf('_')));
}

2voto

ninjagecko Punkte 82995

Eleganz:

data.map(function(x){
    return x.split('_')[0];
})

Dies ist Teil des ECMA-262-Standards.

Aber, wenn Sie sich um die Unterstützung alter, veralteter, minderwertiger Browser kümmern, verwenden Sie jQuery (oder was auch immer für ein anderes Framework Sie verwenden; fast alle von ihnen definieren eine eigene map Funktion):

$.map(data, function(x){
    return x.split('_')[0];
})

0voto

david Punkte 17095

Das, was Sie tun wollen, nennt man eine "Karte". Einige Browser unterstützen sie, aber wenn Sie auf Nummer sicher gehen wollen, können Sie underscore.js verwenden (http://documentcloud.github.com/underscore/)

Sie würden mit einem von beiden enden:

_(data).map(function(x){
    return x.split('_')[0];
});

または

_.map(data, function(x){
    return x.split('_')[0];
});

0voto

kennebec Punkte 98551

Wenn Sie eine vraiment großen Array kann es schneller sein, es mit einer Zeichenkette zu verbinden und die Zeichenkette aufzuteilen, als eine der iterativen Methoden zu verwenden, um sie einzeln zu bilden.

var data = ["1111_3", "1231_54", "1143_76", "1758_12"];

var ids= data.join(' ').replace(/_\d+/g,'').split(' ');

alert(ids)

/*  returned value: (Array)
1111,1231,1143,1758
*/

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