gpt4 book ai didi

javascript - 从 Javascript 对象中检索特定值

转载 作者:行者123 更新时间:2023-11-30 17:30:13 25 4
gpt4 key购买 nike

我有一个 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,最好的方法是什么?

如您所见,选择(下拉)的值映射到级别 ID,但级别是 Javascript 对象 中父对象的属性。

因此,如果我从下拉列表中选择 "Commisions",我需要评估我的变量事件并获取第二个对象的 CustomerDate。

是否可以通过传递事件 Javascript 对象 数组中的选择值来获取 CustomerDate?

最佳答案

有两种方法可以做到这一点。

创建哈希表

遍历您的 JavaScript 对象并将 Level_ids 映射到 CustomerDates,如下所示:

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

您可以通过使用 jQuery 的 .each() 函数遍历您的对象来做到这一点(并且您需要在该函数中使用另一个函数来遍历 Level 对象)。

在 JavaScript 选择事件中,您可以获取 id 并生成一个字符串 "level-"+ id 并在您的哈希表中查找:var customerDate = hash["level- "+ id];

每次都搜索你的 JavaScript 对象

保持您的 JavaScript 对象不变,当用户从下拉列表中进行选择时,它会触发一个事件处理程序,遍历您的复杂对象以查找 level_id。在执行此操作时,它会记住当前的“CustomerDate”,因此当找到它时,您就会跳出搜索循环。

关于javascript - 从 Javascript 对象中检索特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23259733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com