Antworten auf deine Fragen:
Neues Thema erstellen

js-Array()?

saila

Moderatorle

Hi,

eine Frage zu Array unter JS.

An eine Funktion wird ein String übergeben. Per exec wird dieser entsprechend zerlegt und sollte eine integer zurückliefern. Dieser Wert soll nun mit den Inhalten eines (zB.) Array(1, 4, 6) verglichen werden und bei Übereinstimmung true oder false liefern.

Wie ist sowas umzusetzen? Bzw. ich brauche ein kleines Beispiel um zu prüfen wo in meinem Teil der Fehler liegen könnte.
 

saila

Moderatorle

AW: js-Array()?

Code:
var xy = 0;
var test = new Array('data1', 'data2', 'data10');

function retW(a, b) {
    if(a && a == test[b]) {
        xy = 1;
    }
}
Das als Beispiel. Meine Funktion ist zwar umfangreicher, wobei es lediglich um das Ermitteln eines Wertes innerhalb des Array geht. Sprich ist der Wert b innerhalb des Array.

b hat z.B. den String data11
 

dove

Noch nicht viel geschrieben

AW: js-Array()?

Code:
var xy = 0;
var test = new Array('data1', 'data2', 'data10');

function retW(a, b) {
    if(a && a == test[b]) {
        xy = 1;
    }
}
Das als Beispiel. Meine Funktion ist zwar umfangreicher, wobei es lediglich um das Ermitteln eines Wertes innerhalb des Array geht. Sprich ist der Wert b innerhalb des Array.

b hat z.B. den String data11


Ich würde das nicht über eine globale Var erledigen, da du sagtest es soll zurück gegeben werden reicht es ja aus true oder false zurück zu geben.

Code:
var test = new Array('data1', 'data2', 'data10');

function retW(a, b) {
    return (a == test[b]);
}
 

saila

Moderatorle

AW: js-Array()?

Wenn ich das so umsetze, erfolgt die Meldung Objekt erwartet oder nicht vorhanden. Egal ob der übergebene Wert im Array vorhanden ist oder nicht.
 

dove

Noch nicht viel geschrieben

AW: js-Array()?

b muss in dem oben genannten Fall 0,1 oder 2 sein.
a natürlich data1, data2 oder data10

und test muss vor der Funktion und dem Funktionsausruf deklariert worden sein.
 

saila

Moderatorle

AW: js-Array()?

Ok. Aber b ist ein Wert, welcher mit dem Array abgeglichen werden muss. Sprich b ist nicht 0,1,2 (also ein Zeiger für das Array) sondern ein String-Wert.
 

dove

Noch nicht viel geschrieben

AW: js-Array()?

ok dann versteh ich den Sinn der Funktion nicht.

Du willst 2 Werte übergeben. a und b.

a enthält einen Inhalt von einem Element aus dem Array.

b auch.

Was willst du jetzt geprüft haben ?
 

saila

Moderatorle

AW: js-Array()?

Klar - blödsinn. Bin schon ganz schugge. In die Funktion wird lediglich a übergeben. Nun soll geprüft werden, ob a auch im Array enthalten ist. Da a ein String ist, kann ich nicht mit 0,1,2... prüfen.


var xy = 0;
var test = new Array('data1', 'data2', 'data10');

function retW(a) {
if(a && a == test[a]) {
xy = 1;
}
}
 

dove

Noch nicht viel geschrieben

AW: js-Array()?

Klar - blödsinn. Bin schon ganz schugge. In die Funktion wird lediglich a übergeben. Nun soll geprüft werden, ob a auch im Array enthalten ist. Da a ein String ist, kann ich nicht mit 0,1,2... prüfen.


var xy = 0;
var test = new Array('data1', 'data2', 'data10');

function retW(a) {
if(a && a == test[a]) {
xy = 1;
}
}

ok das mach schon mehr sinn :D

Code:
function retW(a) {
  for (i=0;i<test.length;i++) {
    if (a == test[i]) return i;
  }
  return -1;
}
du kannst das ganze natürlich auch globaler gestallten, um in Zukunft eine solche Funktion erneut zu benutzen:

Code:
function in_array(search,array) {
  for (i=0;i<array.length;i++) {
    if (search == array[i]) return true;
  }
  return false;
}


function retW(a) {
  return in_array(a,test);
}
 
Zuletzt bearbeitet:

Thyras

Nicht mehr ganz neu hier

AW: js-Array()?

Wenn ich es richtig verstehe willst du quasi ne in_array()-Prüfung, welche dir, wenn der Wert im Array gefunden wird, den Index im Array zurückliefert oder?

Würde ich spontan jetzt so lösen:

Code:
Array.prototype.in_array = function(needle) {
    for(var i = 0; i < this.length; i++) {
        if(this[i] === needle) {
            return i;
        }
    }
    return -1;
}
Aufrufen dann eigentlich bloß noch mit:

Code:
test.in_array('data11');

[edit]
Ok wir nähern uns der selben Lösung. ;)
 

saila

Moderatorle

AW: js-Array()?

Ok - passt. Danke.

Nun nur noch die Frage, wie greift man im Syomfony-Framework innerhalb des frontend auf eine Session-Variable zu (wenn möglich mit einer API-Funktion)? sf_user geht nicht, da nicht vorhanden. Allerdings ist getUser vorhanden und darin sind auch die entsprechend gesuchten Werte. Allerdings unter parameters und wie man darauf zugreifen kann - - bislang habe ich noch keine Info hierzu gefunden......
 

saila

Moderatorle

AW: js-Array()?

Symfony-Framework ist PHP ;) und war mehr als Zusatzfrage gedacht.

Ansonsten nehm ich in der Regel jQuery. Nur hier war ein Script ausserhalb eines Frameworks und ich wusste nicht mehr auf die Array-Variablen zuzugreifen. Wobei Prototype müsste ich mir ohnehin mal ansehen :)

EDIT:
Wenn das Thema zum Symfony-Framework (Zugriff auf Session-Daten (normal) als auch Session-Array) interessiert: Dort habe ich die Lösung entsprechend der jeweiligen Vorgehensweise dokumentiert.
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.564
Beiträge
1.538.064
Mitglieder
67.487
Neuestes Mitglied
MichaelSEivy
Oben