javascript - 如何在javascript中使用 "for in"循环获取存储在对象中的键的数组值

标签 javascript

在Javascript中,我想要一个具有三个属性的对象,“zone1”,“zone2”,“zone3”,每个属性都存储一个地名数组。我想通过迭代数组来查找地名来搜索匹配项。 以下问题几乎让我明白了,但对我不起作用,因为我没有使用 jQuery,而且我想要值,而不是键:

我的代码如下所示:

var zoneArray = {};
zoneArray["zone1"] = ["placeA", "placeB"];
zoneArray["zone2"] = ["placeC", "placeD"];

function getZone(place, zoneArray) {
    var zone;
    for (var key in zoneArray) {
        for(i = 0; i<key.length; i++) {
            if(key[i] == place) {
                zone = key;
                return zone;
            }
        }
    }

}
getZone("placeC", climateZoneArray);

显然,“key[i]”指的是区域名称的字母,例如“z”“o”“n”“e”

有人可以帮助我理解或最好地处理 JavaScript 中的这种情况吗?

最佳答案

使用zoneArray[key]访问数组。

for (var key in zoneArray) {
    var arr = zoneArray[key]
    for(i = 0; i<arr.length; i++) {
        if(arr[i] == place) {
            zone = key;
            return zone;
        }
    }
}

关于javascript - 如何在javascript中使用 "for in"循环获取存储在对象中的键的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24718694/

相关文章:

javascript - NodeJS - 使用 Core NodeJS 和原始 Node 解决方案的带有进度条的文件上传

php - 通过JAVASCRIPT还是PHP检测访问者的浏览器?

javascript - 围绕 iframe 的 jQuery UI 对话框;性能问题?

javascript - 显示对象数组中的所有值时出现问题

javascript - jquery/html 插值

javascript - 从 AngularJS 中的 json 对象绑定(bind)选择下拉列表

javascript - jQuery UI 多选

java - 如何比较这两个日期?

javascript - 当按下下一个和上一个按钮时,如何使用 javascript 和 jquery 更改文本值?

javascript - 如何捕获选择选项卡上的事件