簡體   English   中英

如何將數組推入關聯數組,然后檢索值進行比較?

[英]How to push arrays into an associative array, and then retrieve the values for comparison?

我的問題是我想創建一個數組,以保存可以相互比較的多個數組。 這將用於同時跨多個頁面更改復選框。

例如,我想要:

masterArray = [];
masterArrayChanged = [];

然后能夠做到這一點:

masterArray["pageName"][ARRAY OF CHECKBOXES HERE]
masterArrayChanged["pageName"][ARRAY OF CHECKBOXES HERE ];
On user checkbox click => masterArrayChanged["pageName"].push({thisCheckBox});

以便稍后我可以去比較兩個數組以查看用戶是否進行了更改:

jQuery.grep(masterArrayChanged["pageName"], function(el) {
        if (jQuery.inArray(el, masterArray["pageName"]) == -1) alert(el);
});

知道這是否可行嗎? 或者是否有更好的方法來實現我想要的?

好的,我想我回答了我自己的問題。 如果這是錯誤的,或者有更有效的方法來做到這一點,請糾正我:

  var pagename,
  masterArrayChanged= [],
  masterArray = [];



var updateFunc = function(checkBox,action,page){
      if(action === 'add') {
        masterArrayChanged[page].push({ checkBox });
      }
      else {
        masterArrayChanged[page].splice( $.inArray(checkBox, masterArrayChanged[tabID]), 1 );        
      }
      console.dir(masterArrayChanged[page]);
    }

是的,這是可行的。 唯一的問題是,比較數組最終可能會占用大量資源,尤其是當您要處理大量數據時。

那么為什么不是只有一個數組來跟蹤發生的變化,而不是兩個數組呢? 所以在提交時,你只檢查數組中是否有任何值。 如果有值,則您知道更改是由用戶完成的。

您可能還想為復選框提供標識符,因此當復選框(或復選框組)更改時,將其標識符添加到數組/對象中,如果用戶撤消更改,則刪除標識符

暫無
暫無

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

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