我在Javascript / Angular中有这段代码:
$scope.validCredentials = {
'a@a.it': 'aaa',
'b@b.com' : 'bbb'
};
我在这个循环中访问变量:
for ( var k in Object.keys($scope.validCredentials) ) {
$log.info("K: " + k);
}
我在StackOverflow上的另一个问题中读到,Object.keys会返回一个地图的键,这种情况正在发生,因为调试期间的Firebug正确地给了我两个电子邮件地址。
然而" $ log"函数给出0(或1,取决于循环),0也是稍后在代码中使用的值,当我将该值与另一个变量检查时。
知道为什么吗?发生了什么?
我在firefox上测试了它,chrome,firebug或开发者工具在调试期间给我发送电子邮件列表,但记录器记录了数字。
答案 0 :(得分:1)
这与angular无关,当你使用时,你已经迭代了键,所以只需删除Object.keys调用
var validCredentials = {
'a@a.it': 'aaa',
'b@b.com' : 'bbb'
};
for ( var k in validCredentials) {
console.debug("K: " + k);
}
此输出:
K: a@a.it
K: b@b.com
答案 1 :(得分:0)
您不需要迭代。你错过了一个'
var validCredentials = { 'a@a.it': 'aaa', 'b@b.com' : 'bbb'};
console.log( Object.keys(validCredentials));

答案 2 :(得分:0)