簡體   English   中英

從Javascript對象檢索特定值

[英]Retrieve specific value from Javascript object

我有一個Javascript對象,其以下格式分配給了javascript變量:

var events = 

[
   {
      "Id":20,
      "CustomerId":9,
      "CustomerName":"Mark Wikkins",
      "Code":"CT6789",
      "CustomerDate":"\/Date(1466679600000)\/",
      "Levels":[
         {
            "Id":92,
            "Nivel":0,
            "Code1":"Sales",
            "Code2":null,
            "Description":"Customer",
         },
         {
            "Id":94,
            "Nivel":0,
            "Code1":"Sales",
            "Code2":null,
            "Description":"Customer",
         }
      ]
   },
   {
      "Id":21,
      "CustomerId":14,
      "CustomerName":"John Stweart",
      "Code":"CT70000",
      "CustomerDate":"\/Date(146667970000)\/",
      "Levels":[
         {
            "Id":102,
            "Nivel":0,
            "Code1":"Jobs",
            "Code2":null,
            "Description":"Customer",       
         },
         {
            "Id":106,
            "Nivel":"0",
            "Code1":"Commissions",
            "Code2":null,
            "Description":"Customer",
         },
         {
            "Id":113,
            "Nivel":0,
            "Code1":"Organizations",
            "Code2":null,
            "Description":"Customer",
         }
      ]
   }
];

而且我有以下文本和值的下拉列表

<select name="customers_select" id="customers_select">
  <option value="92">Sales</option>
  <option value="106">Commisions</option>
  <option value="113">Organizations</option>
</select>

如果我想從下拉菜單中選擇后獲得CustomerDate ,那么最好的方法是什么?

如您所見,select(下拉)的值映射到Level ID,但是level是Javascript Object父對象的屬性。

因此,如果我從下拉列表中選擇"Commisions" ,則需要評估變量事件並獲取第二個對象的CustomerDate。

是否可以通過傳遞事件Javascript Object數組中的select值來獲得CustomerDate?

有兩種方法可以做到這一點。

創建哈希表

像這樣循環遍歷您的JavaScript對象並將Level_ids映射到CustomerDate:

var hash = {};
hash["level-102"] = "\/Date(146667970000)\/";
hash["level-106"] = "\/Date(146667970000)\/";
hash["level-113"] = "\/Date(146667970000)\/";
... and so on

您可以通過使用jQuery的.each()函數遍歷對象來做到這一點(並且您需要在其中的另一個對象遍歷Level對象)。

在JavaScript select事件中,您可以獲取ID並創建一個字符串"level-" + id ,然后在哈希表中查找: var customerDate = hash["level-" + id];

每次搜索您的JavaScript對象

保持JavaScript對象不變,當用戶從下拉列表中進行選擇時,它將觸發事件處理程序,該事件處理程序遍歷您的復雜對象以查找level_id。 在執行此操作時,它會記住當前的“ CustomerDate”,因此當找到該“ CustomerDate”時,您會跳出搜索循環。

暫無
暫無

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

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