2017-02-10 8 views
-1

選択ボックスにドロップダウンを表示するスクリプトがあります。現在、私が使用しているスクリプトは、私は純粋なJavaScriptにこれを変換することができますどのようjqueryを各関数を純粋な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); 

    }); 
}); 

です。私がこれを使用している場合、

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); 

    }); 
}); 

が動作しないためです。

+1

と "それが動作していない" - "動作しない" を定義します。明確な問題声明を出してください。あなたが得る行動は、あなたが期待する行動とどのように違うのですか? – Quentin

+1

"jqueryを各関数を純粋なjavascriptに変換する" - jQuery **は**純粋なJavaScriptです。 jQueryへの依存を取り除きたいが、JavaScript以外のものとしてjQueryを間違えてはいけないという完全な正当な理由がある。 – Quentin

+0

私は自分の質問を編集しました。 –

答えて

1

ネイティブの引数の順序の違いに注意してください。forEach - 最初はitemの値、2番目はindexです。だから、代わりに:

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

使用この:

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

あなたのメソッドのシグネチャが間違っています。それはです:

arr.forEach(function callback(currentValue, index, array) { 
    //your iterator 
}[, thisArg]); 

あなたは間違っ.forEach()メソッドを使用しているhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

+0

arr、currentValue、arrayは何ですか? –

+0

@UpendraSharmaこれはドキュメント内で、あなたにリンクをクリックします;-) – magritte

1

を参照してください。 forEach docs

最初の引数として配列を渡す必要はありません。コールバックを渡すだけです。

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

やキー/値の反復

dslr.forEach(function(value, index) { 
    // do something.. 
} 
関連する問題