我有一个关于JavaScript数组的通用问题.JavaScript中的数组索引是否作为字符串内部处理?我读到某处,因为数组是JavaScript中的对象,索引实际上是一个字符串.我对此感到有点困惑,并且对任何解释都很高兴.
这个Javascript逻辑让我困惑.我正在创建一个数组并将其第一个元素设置为数字.当我使用"for"循环进行交互时,Javascript将数组键转换为字符串.为什么?我希望它留下一个数字.
stuff = [];
stuff[0] = 3;
for(var x in stuff) {
alert(typeof x);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Google Chrome进行此测试:与直觉相反,第一个循环警告"字符串"3次,而第二个循环警告"数字"3次.
numarray = [1, 2, 3];
//for-each loop
for(num in numarray)
alert(typeof(num));
//standard loop
for(i=0; i<numarray.length; i++)
alert(typeof(numarray[i]));
Run Code Online (Sandbox Code Playgroud)
我期待两个循环警告"数字"3次.如何在Javascript中实现第一个循环?换句话说,如果for-each是语法糖,使用标准循环的等价物是什么?
另外,有没有办法使用标准循环迭代对象的命名空间?我希望使用第二种循环来触摸某些对象的方法和属性中的每一个.我是Javascript的新手,非常感谢任何帮助,谢谢.
我正在for...in用 javascript编写一个简单的循环,想知道为什么key是字符串而不是数字?
为什么会这样,我可以将其更改为数字吗?
var array = ["a", "b", "c"];
for (var key in array) {
console.log(typeof key); //string
console.log(key + 1); //expected output : 01, 11, 21...
}
Run Code Online (Sandbox Code Playgroud)