Arrays auslesen
Revilo
- javascript
Hallo Leute :o)
ich bastel mir gerade so ´ne Art Minidatabase zurecht, die zwar funktioniert, aber es gibt da eine Hürde, über die ich irgendwie nicht hinwegkomme. Im Archiv habe ich auch nichts dazu finden können.
Eintrag = new Array();
Eintrag[1] = new entry("toll","2","3","4","5");
Eintrag[2] = new entry("auch toll","2","3","4","5");
Eintrag[3] = new entry("supertoll","2","3","4","5");
Nach diesem Schema sind die Einträge abgelegt. Wie stelle ich es aber an, daß bei einem Suchbegriff "toll" alle 3 Einträge wiedergefunden werden, und nicht nur der erste?
Kann mir da jemand auf die Sprünge helfen?
gruss Revilo,
ich bastel mir gerade so ´ne Art Minidatabase zurecht, die zwar funktioniert,
aber es gibt da eine Hürde, über die ich irgendwie nicht hinwegkomme.
Im Archiv habe ich auch nichts dazu finden können.Eintrag = new Array();
Eintrag[1] = new entry("toll","2","3","4","5");
Eintrag[2] = new entry("auch toll","2","3","4","5");
Eintrag[3] = new entry("supertoll","2","3","4","5");Nach diesem Schema sind die Einträge abgelegt. Wie stelle ich es aber an,
daß bei einem Suchbegriff "toll" alle 3 Einträge wiedergefunden werden,
und nicht nur der erste?Kann mir da jemand auf die Sprünge helfen?
function Entry() {
// konstruktor-funktion einer "js-klasse" >>Entry<<;
...
...
...
}
var eintrag = new Array();
eintrag[0] = new Entry("...","...",...);
eintrag[1] = new Entry("toll","2","3","4","5");
eintrag[2] = new Entry("auch toll","2","3","4","5");
eintrag[3] = new Entry("supertoll","2","3","4","5");
eintrag[4] = new Entry("...","...",...);
...
...
...
function getMatchingCollection(expression) {
var matchingCollection = new Array();
var entryObject = null;
var propertyName = "";
for (var i=0;i<eintrag.length;i++) {
entryObject = eintrag[i];
for (propertyName in entryObject) {
if (propertyName.indexOf(expression) >= 0) {
matchingCollection[matchingCollection.length] = entryObject;
}
break; // so wie es aussieht muss die for-in-schleife jeweils nur die erste objekt-eigenschaft scannen;
}
}
return ((matchingCollection.length == 0) ? (null) : (matchingCollection));
}
getMatchingCollection("toll");
by(t)e by(t)e - peterS. - pseliger@gmx.net
--
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)
hallo again,
... wobei folgende suche vorzuziehen ist ...
for (propertyName in entryObject) {
// if (propertyName.indexOf(expression) >= 0) {
if (entryObject[propertyName].search(new RegExp(expression,"i")) >= 0) {
matchingCollection[matchingCollection.length] = entryObject; // [1]
}
break; // so wie es aussieht muss die for-in-schleife jeweils nur die erste objekt-eigenschaft scannen;
}
... und in zeile [1] darauf spekuliert wird, dass
der >>Entry<<-konstruktor diesem aufbau folgt:
function Entry() {
// konstruktor-funktion einer "js-klasse" >>Entry<<;
for (var i=0;i<Entry.arguments.length;i++) {
this["propertyName"+i] = Entry.arguments[i];
}
}
by(t)e by(t)e - peterS. - pseliger@gmx.net
--
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)
Moin nochmal...
jawollja, das haut hin..... super! Vielen Dank @peterS. :-)
Greetz