javascript - 如何将字符串与对象键进行比较并获取该键的值?

标签 javascript jquery arrays object

无论如何,我想做一些相对简单的事情。

我需要将页面的路径名与对象的 kv 对进行比较。例如:

if("pathname" === "key"){return value;}

差不多就这些了。我不确定如何在常规 Javascript 或 jQuery 中执行此操作。两者都可以接受。

你可以在这里看到我的 fiddle :http://jsfiddle.net/lz430/2rhds1x3/

JavaScript:

var pageID = "/electrical-electronic-tape/c/864";
var pageList = [{
    "/electrical-electronic-tape/c/864": "ElectronicTape",
    "/industrial-tape/c/889": "IndustrialTape",
    "/sandblasting-tape/c/900": "SandblastingTape",
    "/Foam-Tape/c/875": "FoamTape",
    "/double-coated-d-c-dhesive-tape/c/872": "DCTape",
    "/Adhesive-Transfer-Tape/c/919": "ATTape",
    "/Reflective-Tape/c/884": "ReflectiveTape",
    "/custom-moulding": "CustomMoulding",
    "/request-a-quote": "RequestQuote"
}];
var label = pageID in pageList;
$('.el').html(label);

最佳答案

首先,您的“pageList”应该只是一个普通对象,而不是数组中的对象:

var pageList = {
    "/electrical-electronic-tape/c/864": "ElectronicTape",
    "/industrial-tape/c/889": "IndustrialTape",
    "/sandblasting-tape/c/900": "SandblastingTape",
    "/Foam-Tape/c/875": "FoamTape",
    "/double-coated-d-c-dhesive-tape/c/872": "DCTape",
    "/Adhesive-Transfer-Tape/c/919": "ATTape",
    "/Reflective-Tape/c/884": "ReflectiveTape",
    "/custom-moulding": "CustomMoulding",
    "/request-a-quote": "RequestQuote"
};

然后您可以将“标签”设置为映射中的值:

var label = pageList[pageID] || "(not found)";

如果查找失败,上面语句的最后一点会将标签设置为“(未找到)”,这可能适用于也可能不适用于您的情况。

关于javascript - 如何将字符串与对象键进行比较并获取该键的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32487835/

相关文章:

javascript - 更改我的 jquery 移动主题会更改我的 css 样式

javascript - jQuery $(document).ready 和 $().ready 之间的区别

jquery - jquery mobile 中的左垂直选项卡

java - 如何从数据库[Cursor Adapter]获取值并将其存储到java中的数组中?

javascript - 对 JQuery 执行刷新以刷新选择器

javascript - 如何将 CSS 样式表转换为内联 CSS 样式?

javascript - 检测移动和桌面设备上的字符代码

javascript - 在父 jQuery 中查找特定类的下一个元素

ios - 数组 Swift 中的 ArraySlice

c# - 如何检查可变长度字符串以查看它们是否以数组中的任何内容开头