繁体   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