Javascript 我们可以将常规for循环与for in组合起来吗

Javascript 我们可以将常规for循环与for in组合起来吗,javascript,for-loop,Javascript,For Loop,我很好奇,但谷歌在这方面没有帮助 我们正在寻找一种整洁的方法来使用对象键,它是一个包含函数的对象,同时也可以干净地访问键名 var obj={'key1':'val1','key2':'val2','key3':'val3'}; 要在循环中获得所需的键名,我们需要执行以下操作:编辑:这是错误的 在使用&&之前,我见过组合循环。JavaScript能够将两者完美地结合起来吗 在不中断标准循环的情况下,我得到的最接近的结果是: var i=0; for(var k in obj){ con

我很好奇,但谷歌在这方面没有帮助

我们正在寻找一种整洁的方法来使用对象键,它是一个包含函数的对象,同时也可以干净地访问键名

var obj={'key1':'val1','key2':'val2','key3':'val3'};
要在循环中获得所需的键名,我们需要执行以下操作:编辑:这是错误的

在使用&&之前,我见过组合循环。JavaScript能够将两者完美地结合起来吗

在不中断标准循环的情况下,我得到的最接近的结果是:

var i=0;
for(var k in obj){
    console.log(Object.keys(obj)[i]);
    i++;
    }

但它并不优雅,也不是很有创新性,它更像是一项工作,因为“i”是在循环之外声明的。其他一切我们都试过了。

如果我理解你的问题,这是最简单的事情

for(var k in obj){
    console.log(k);
}
或者:

Object.keys(obj).forEach(function(key) { console.log(key); });

您正在尝试打印出键和值吗

for(var k in obj){
    console.log(k,obj[k]);
}
如果您需要钥匙:

for(var k in obj) {
  console.log(k)
}
如果需要这些值:

for(var k in obj) {
  console.log(obj[k])
}

为什么要投否决票?这不是被问到的吗?我也不是说它应该被提升…这是一个非常好的答案。我知道!这里有些人是仇恨者!哈哈,我一定很累了。这太容易了,太令人震惊了+1您的第一个循环甚至无效。长度是未定义的,因为正如你所定义的,obj是一个对象而不是数组。谢谢,我想我的大脑是frazzled@8DK这种情况经常发生。别担心,继续…+1,我喜欢你回答的风格
for(var k in obj) {
  console.log(k)
}
for(var k in obj) {
  console.log(obj[k])
}