Vergleich von zwei Arrays

blubbbla

Erfahrenes Mitglied
Ich möchte zwei Arrays vergleichen und herausfinden, ob ein bestimmter Wert nicht in dem anderen Array vorhanden ist. Das Problem ist, dass eine Array hat einen Wert mehr. Ich probiere es gerade so:

C:
for(i=0; i<helpArray.length; i++)
{
			
if(helpArray[i] != selected_items[i])
	alert("Das ist der Wert"+helpArray[i]);
			
}

Manchmal gehts auch, aber manchmal auch nicht. Die Werte sind immer in unterschiedlicher Reihenfolge drin und es fehlt immer ein anderer Wert und das Porblem ist, dass selected_items[i] ja auch einmal "undefined" enthält, weil das Array einen Wert weniger hat. Hat jemand eine besser Idee das zu lösen?


Bzw. habe ich jetzt das so gemacht:

C:
for(i=0; i<helpArray.length; i++)
{

for(j=0; j<selected_items.length; j++){
	if(helpArray[i] != selected_items[j])
		alert("das ist der wert");
	}
}

Jetzt will ich also rausfinden, ob der Wert in dem Array ist. Jedoch sagt er mir nun jedesmal "das ist der wert" wenn er jedesmal nicht übereinstimmt. Und ich will einfach nur herausfinden, ob der Wert in dem Array enthalten ist :-(
 
Zuletzt bearbeitet:
Vorschlag:
Code:
<script type="text/javascript">
<!--
Array.prototype.in_array=function(pattern,msg)
{
  for(i=0;i<this.length;++i)
    {
      if(this[i].match(pattern))
        {
          if(msg)alert(this[i]+'\n\n ist vorhanden');
          return true;
        }
    }
  if(msg)alert(' nix gefunden');
  return false;
}
arr1=['ich','suche','was'];
arr2=['und','ich','finde','es'];
arr3=['und','finde','nichts'];

alert('arr2:'+arr2.in_array('^('+arr1.join('|')+')$',1));
alert('arr3:'+arr3.in_array('^('+arr1.join('|')+')$',1));
//-->
</script>
in_array() erwartet als 1. Parameter einen regulären Ausdruck, nach dem gesucht werden soll, als 2. true/false, jenachdem, ob eine Meldung ausgegeben werden soll.
 
Hm und würde das dann so aussehen:

C:
for(i=0; i<helpArray.length; i++)
alert(selected_items.in_array('/helpArray[i]/i',1));

Ich hab leider noch nie mit reg. Ausdrücken gearbeitet :confused:
 
so sollte es gehen:
Code:
for(i=0; i<helpArray.length; i++)
alert(selected_items.in_array('^'+helpArray[i]+'$',1));

aber wenn du eh den ganzen helpArray prüfst, mach es ohne Schleife:
Code:
alert(selected_items.in_array('^('+helpArray.join('|')+')$',1));
 

Neue Beiträge

Zurück