<分区>
例如
var a = [1, 2, 3];
for (var i in a) {
console.log(typeof i);
}
输出
string
string
string
我是一名 Python 程序员,我发现它非常不直观。为什么不将元素评估为数字?
标签 javascript
<分区>
例如
var a = [1, 2, 3];
for (var i in a) {
console.log(typeof i);
}
string
string
string
我是一名 Python 程序员,我发现它非常不直观。为什么不将元素评估为数字?
最佳答案
您正在遍历对象的 keys
。这意味着您实际测试的键是“0”、“1”、“2”。
你可以在这里看到,如果你也控制 i
。此外,如果您控制位于数组中该索引处的值并对其进行测试,您将看到它是一个数字:
var a = [1, 2, 3];
for (var i in a) {
console.log(i, typeof i, a[i], typeof a[i]);
}
在 ES5 中,一个新特性被添加到数组中,循环遍历它们的值(和索引):Array#forEach
:
var a = [1, 2, 3];
a.forEach(function(v) {
console.log(v, typeof v);
});
在 ES2015+ 中,添加了 for-of
,它将使用 for
样式循环遍历值:
// ES2015+ only!!
let a = [1, 2, 3];
for (let v of a) {
console.log(v, typeof v);
}
关于javascript - 为什么数组中数字元素的类型在javascript中被评估为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38529615/
相关文章:
javascript - Cookie 为空,但在浏览器中有一个值
javascript - 引用错误 : function is not defined at HTMLButtonElement. onclick
javascript - 在 jQuery 中如何触发 mootools 中添加的元素事件?
javascript - css中带空格和不带空格的类有什么区别,多个不带空格的类有什么用
javascript - 如何更新分页的 jQuery DataTables 数据并显示它
javascript - JS原型(prototype): Inheritance