javascript - 在 for 循环中访问对象的键和索引

标签 javascript

我想访问对象的键和索引,最好的方法是什么?

这是数据对象:

d={KpiName:"KPI1",  '1/1/2016':"85%",  '1/2/2016':"87%"}
Object {KpiName: "KPI1", 1/1/2016: "85%", 1/2/2016: "87%"}

这是我的 for 第一个 循环及其输出

for (var key in d) { console.log("d[\"key\"]: ", d[key]) }
d["key"]:  KPI1
 d["key"]:  85%
 d["key"]:  87%

这是我想要实现的目标,但我认为我可以写得更好

第二个 for 循环并输出

i=1; for (var key in d) { console.log("d[\"key\"]: ", d[key]); console.log("i: ", i); i++}
d["key"]:  KPI1
i:  1
d["key"]:  85%
i:  2
d["key"]:  87%
i:  3
3

我想我可以像这样编写for循环

for (var key, i  in d){...}

但它似乎不起作用,也许我的 2nd for 循环实现了我想要的,但我不确定它是否是最好的代码。

最佳答案

如果您想使用for/in循环,没有更好的方法来编写它。您必须保留自己的循环变量来计算迭代次数。

<小时/>

可以使用Object.keys首先获取一个键数组,然后使用 for 循环或使用 forEach 访问它们的索引,但我不会称其为“更好”,它只是一个不同的方法来解决它:

var d = {KpiName:"KPI1",  '1/1/2016':"85%",  '1/2/2016':"87%"};

Object.keys(d).forEach(function(key, i) {
  console.log("d[\"key\"]: ", d[key]);
  console.log("i: ", i);
});

关于javascript - 在 for 循环中访问对象的键和索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40477430/

相关文章:

Javascript onmouseup 事件未按预期触发

javascript - jQuery.trigger ('click' )

javascript - 将 JavaScript 函数转换为 jQuery - 选择选项列表

javascript - java中未调用Ajax错误函数

javascript - 如何使用 ng-class-even 和 ng-class-odd 拆分 ng repeat 中的 div 结构?

javascript - 在 JavaScript 中使用变量调用 getter/setter

javascript - 使用 Algolia 进行地理搜索

javascript - 从VueJS组件之间的数组中拼接出this.index

javascript - javascript 简单的电子邮件混淆器可以工作吗?

javascript - 暂停按钮不打开菜单;事件问题