簡體   English   中英

將jQuery的每個功能轉換為純JavaScript

[英]convert jquery each function to pure 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);

    });
});

我如何將其轉換為純JavaScript。 因為如果我用這個

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

    });
});

它不起作用。

請注意,本機forEach中參數順序的差異-第一個是item的值,第二個是index。 所以代替:

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

用這個:

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

您的方法簽名錯誤。 它的:

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

參見https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

您使用的.forEach()方法錯誤。 forEach文檔

您不需要將數組作為第一個參數傳入。 只需傳遞回調即可。

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

或鍵/值迭代

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM