jQuery循环中通过数组键值取值失败,直接调用数组却正常的问题
问题分析与解决
你遇到的问题核心是对变量作用域和对象属性的误解:dns_types是独立于data数组的外部变量,并不是data数组中每个元素的属性。
- 当你写
data[i].dns_types[ data[i].type ]时,代码会尝试去data的第i个元素里查找名为dns_types的属性,但你的data元素根本没有这个属性,所以无法返回正确值。 - 而直接使用
dns_types[ data[i].type ]是正确的,因为你直接访问了外部的dns_types变量,再用data[i].type作为键去匹配对应的值。
修正后的代码示例
只需要把循环内的错误代码替换为正确的写法即可:
// 假设你的循环逻辑如下 for (var i = 0; i < data.length; i++) { // 正确获取指定键对应的值 var targetValue = dns_types[ data[i].type ]; // 这里可以添加后续使用targetValue的逻辑 console.log(targetValue); }
内容的提问来源于stack exchange,提问作者charlie
相关产品推荐
相关产品推荐

