Zählt Instanzen von string in einem Array

8

Ich habe ein Array in jQuery, und ich muss die Anzahl der "wahren" Strings in diesem Array zählen und dann die Variable "numOfTrue" der Anzahl der wahren Strings anpassen. Im folgenden Array gibt es also 2 "echte" Strings, also wäre numOfTrue gleich 2.

%Vor%

Ich bin nicht sicher, wie man eine Schleife durch das Array in jQuery macht, um die Strings zu zählen. Oder ist eine Schleife überhaupt nötig?

Die Anzahl der wahren Zeichenfolgen kann sich von irgendwo zwischen 1 und 5 ändern.

    
Livi17 03.04.2012, 15:41
quelle

10 Antworten

24

Verwenden einer grundlegenden, altmodischen Schleife:

%Vor%

oder, ein reduce

%Vor%

oder ein filter

%Vor%     
Jamiec 03.04.2012, 15:44
quelle
10

Sie brauchen jQuery dafür nicht. Eine einfache for-Schleife wie unten würde den Trick machen,

%Vor%

oder sogar ohne Schleife, DEMO

%Vor%     
Selvakumar Arumugam 03.04.2012 15:44
quelle
7

Es ist vielleicht nicht so leistungsfähig, aber Sie können filtern und dann mit grep rechnen:

%Vor%     
Samich 03.04.2012 15:46
quelle
6

Sie benötigen jQuery für diese Aufgabe nicht. Einfach nur Javascript. Die beste Antwort wird von Jamiec von dir gegeben, du könntest auch Filter oder reduzieren Funktionen, die für Arrays verfügbar sind.

Filterfunktion:

%Vor%

Hier stellen Sie die Callback-Funktion bereit, die für jedes Element im Array ausgeführt wird. Wenn diese Funktion true zurückgibt, befindet sich dieses Element im zurückgegebenen Array. Dann erhalten Sie die Länge dieses Arrays (Länge von ["true", "true"] Array ist 2 )

Funktion reduzieren:

%Vor%

Reduce-Funktion benötigt Callback-Funktion, die für jedes Element im Array ausgeführt wird. Array-Element wird als zweites Argument bereitgestellt, das erste Argument ist der Rückgabewert des zuvor ausgeführten Rückrufs. Das zweite Argument der Reduzierungsfunktion ist der Anfangswert, der für die erste Rückruffunktion bereitgestellt wird. Wenn Sie das weglassen, wird das erste Element aus dem Array bereitgestellt (in diesem Beispiel, wenn Sie vergessen haben, 0 als zweites Argument hinzuzufügen, wird der Ergebniswert "true0010" string sein, da Sie statt Zahlen Zahlen verketten )

    
Mariusz Pawelski 30.07.2014 19:50
quelle
1

Wenn Sie jQuery verwenden wollten (und tbh, sollten Sie dies nicht tun), wird dies funktionieren:

%Vor%

Das Javascript entspricht:

%Vor%     
Rory McCrossan 03.04.2012 15:45
quelle
1
%Vor%

Ссылка

    
Kevin Bowersox 03.04.2012 15:45
quelle
1
%Vor%

Ссылка

    
kpcrash 03.04.2012 15:51
quelle
1
%Vor%     
ShankarSangoli 03.04.2012 15:44
quelle
0

Sie können jQuery.each verwenden, um über die Liste zu iterieren, zum Beispiel:

%Vor%

Hier ist ein Spiel, wenn Sie damit herumspielen wollen: Ссылка

    
Justin Ethier 03.04.2012 15:48
quelle
0
%Vor%     
Ivan Ivanov 24.01.2015 05:52
quelle

Tags und Links