jQuery Inhalt zweier Arrays vergleichen

Ok, richtig ;-)

Folgendes:

Javascript:
var a = $('input[name=usubGID]').val();
var b = $('input[name=gid]').val();

var resultArray1 = a.split(',').map(function(a){
  return Number(strVale1);
  });
  
  var resultArray2 = b.split(',').map(function(b){
  return Number(strVale2);
  });

   /*var a = [1, 2, 3, 4, 5, 6];
  var b = [1, 2, 3, 4, 7, 8, 9];*/

  var diff = $.grep( resultArray1, function( el ) {
  return ( $.inArray( el, resultArray2 ) !== -1 );
  });
  
  $('input[name=diff]').val(diff);

Ich musste eigentlich die Ziffer in dem diff bekommen, die in dem ersten Feld (var a) schon war, aber beim zweiten (var b) nicht... also die: 5 und 6.
Habe drin nen logischen Fehler ;-(

z.B. bei den drei Feldern hier:
upload_2015-5-6_18-11-24.png

das erste Feld ist: a
das zweite ist: b
das dritte ist wo ich die diffence speichere und die es musste:
11, 10, 9,4 enthalten, da sie Anfang in a waren und danach nicht mehr in b vorhanden.

Thanks!
 
Hm, mit diesem:
Code:
return ( $.inArray( el, resultArray2 ) !== -1 )
bekommst Du aber das Ergebnis des Vergleiches, true oder false, und nicht das Feldelement?
Edit: Da habe ich etwas falsch verstanden, die Funktion muss ja true oder false zurück geben und entsprechend wird das Feldelement übernommen oder nicht.
 
Zuletzt bearbeitet:
Hi,

hast du schon mal versucht, die Arrays sowie den Vergleichsoperator zu tauschen?
Javascript:
$.grep(resultArray2, function(el) {
    return $.inArray(el, resultArray1) === -1;
});
Ansonsten - wenn du nur die Elemente haben möchtest, die entweder in a oder in b enthalten sind:
Javascript:
($.grep(resultArray1, function(el) {
    return $.inArray(el, resultArray2) === -1;
})).concat($.grep(resultArray2, function(el) {
    return $.inArray(el, resultArray1) === -1;
}));

Ich hoffe, ich habe das Problem richtig verstanden.

Ciao
Quaese
 
Hallo und guten Morgen Zusammen,

vielen Dank für das Mitdenken, Hilfe und Tipps!
Der zweite/letzte Vorschlag hat mir sehr geholfen... das hat's gelöst.

P.S. Sry für das verspätete!

Danke & Gruß
Messmar
 
Zurück