2017-02-10 4 views
-1

Ich habe Skript Dropdown in Auswahlfeld anzeigen. Das Skript, das ich derzeit verwende, istkonvertieren jquery jede Funktion zu reinem Javascript

jQuery.each(dslr, function(index, dslrgp) { 
    var aslrp= dslrgp.aslrp; 
    jQuery.each(aslrp, function(index2, pslrp) { 
     var found = 0; 
     jQuery.each(dropdown, function(index3, dditem) { 
      if (dditem.countryname == pslrp.countryname) 
      { 
       foundit = 1; 
      } 
     }); 
     if (foundit == 0) 
      dropdown.push(pslrp); 

    }); 
}); 

Wie kann ich dies zu reinem Javascript konvertieren. Denn wenn ich diese

dslr.forEach(function(index, dslrgp) { 
    var aslrp= dslrgp.aslrp; 
    aslrp.forEach(function(index2, pslrp) { 
     var found = 0; 
     dropdown.forEach(function(index3, dditem) { 
      if (dditem.countryname == pslrp.countryname) 
      { 
       foundit = 1; 
      } 
     }); 
     if (foundit == 0) 
      dropdown.push(pslrp); 

    }); 
}); 

verwenden, funktioniert es nicht.

+1

"es funktioniert nicht" - definieren "nicht funktioniert". Gib eine klare Problemstellung. Wie unterscheidet sich das Verhalten von dem erwarteten Verhalten? – Quentin

+1

"konvertieren jquery jede Funktion zu reinem javascript" - jQuery ** ist ** pure JavaScript. Es gibt durchaus gültige Gründe dafür, eine Abhängigkeit von jQuery zu entfernen, aber verwechseln Sie jQuery nicht mit etwas anderem als JavaScript. – Quentin

+0

Ich habe meine Frage bearbeitet. –

Antwort

1

Beachten Sie den Unterschied in der Reihenfolge der Argumente in nativen forEach - erstens ist der Wert des Elements, zweitens Index. Also statt:

aslrp.forEach(function(index2, pslrp) { 
... 
dropdown.forEach(function(index3, dditem) { 

Verwendung dieses:

aslrp.forEach(function(pslrp, index2) { 
... 
dropdown.forEach(function(dditem,index3) { 
1

Sie verwenden die .forEach() Methode falsch. forEach docs

Sie müssen das Array nicht als erstes Argument übergeben. Übergeben Sie einfach den Rückruf.

dslr.forEach(function(dslrgp) { 
    // do something.. 
} 

oder mit Schlüssel/Wert-Iteration

dslr.forEach(function(value, index) { 
    // do something.. 
}