jQuery Inhalt zweier Arrays vergleichen

messmar

Erfahrenes Mitglied
Hallo Zusammen,

Ich will den Inhlat zweier Arrays vergleichen und die difference ausgeben, aber der folgende Code gibt mir folgendes über die FireFox Consoel aus:

jQeury-Version ist: query-1.11.2.min.js

Code:
SyntaxError: illegal character
alert(" the difference is " + difference);

Javascript:
<script>
  var array1 = [1, 2, 3, 4, 5, 6];
  var array2 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  var difference = [];

  $.grep(array2, function(el) {
  if ($.inArray(el, array1) === -1){
  difference.push(el);
  }
  });

  alert(" the difference is " + difference);
  </script>

ich sehe den Fehler einfach nicht ;-(

Danke und Gruß
Messmar
 
Soeben getestet und funktioniert einwandfrei! Bist Du sicher, dass die Fehlermeldung von diesem Code kommt?
 
Probier es mal so:
Javascript:
var a = [1, 2, 3, 4, 5, 6];
var b = [1, 2, 3, 4, 5, 6, 7, 8, 9];

var diff = a.filter(function( el ) {
  return ( $.inArray( el, b ) !== -1 );
});
Mir ist gerade aufgefallen, dass dies äquivalent zu folgendem ist:
Javascript:
var a = [1, 2, 3, 4, 5, 6];
var b = [1, 2, 3, 4, 5, 6, 7, 8, 9];

var diff = $.grep( a, function( el ) {
  return ( $.inArray( el, b ) !== -1 );
});
 
Hi

kannst du die JS-Datei (die ganze Datei, nicht den rauskopierten Inhalt) hier anhängen?
(einfach im Forum, ohne externe Seite)
 
Hi, danke euch! Anbei...

Scheint zu gehen, nur aber wenn ich den value zweier inputFelder (nicht hard codiert wie im Beidspiel) in den Variablen
speichere, dann bekomme ich nicht das richtige/erwartete Ergebniss.

Ich erhalte folgende im alert:
Code:
1,5,,,1,,,1,,,1,1,,,1,0,,,9,,

Die beiden Text-Felder haben in dem Fall:
upload_2015-5-6_17-20-11.png


Heute ist nicht mein Tag.

Grüße
Messar
 

Anhänge

  • datei.txt
    6,1 KB · Aufrufe: 7
??? AFAIK ist der Inhalt eines Input-Feldes vom Typ String?
Außerdem: Muss es nicht heißen:
Code:
$('input[name="usubGID"]')
 
Hm.. AFAIK:.?

die Textfelder sind ganz normale Inputfelder (vom Type text) eines Formulars

<input type="text" name="usubGID" value="">
<input type="text" name="gid" value="">

die werden dann natürlich dynamisch befüllt und am Ende will ich die Values verglechen und die Diffrence für andere
Zwecke verwenden.

Danke!
 
AFAIK: "As far as I know" - "soweit ich weiß". Soweit ich weiß, ist der Value eines Input-Feldes immer ein String, während dein Code-Abschnitt mit dem Vergleich Array erwartet. Sieh dir doch mal die Values mit dem Debugger an.
 
Ja, ist immer ein String:

Code:
<input type="text" value="15,14,13,11,10,9,4" name="usubGID">
<input id="gid" type="text" value="2,5,6,8,9,1,10" name="gid">
 
Genau, und deshalb kann dein Codeabschnitt mit dem Vergleich nicht funktionieren, weil dieser auf Arrays basiert. Du kannst ja die Strings in Arrays konvertieren.
 

Neue Beiträge

Zurück