企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## for-in 循环 只用于 object/map/hash 的遍历 对 `Array` 用 `for-in` 循环有时会出错. 因为它并不是从 `0` 到 `length - 1` 进行遍历, 而是所有出现在对象及其原型链的键值. 下面就是一些失败的使用案例: ``` function printArray(arr) { for (var key in arr) { print(arr[key]); } } printArray([0,1,2,3]); // This works. var a = new Array(10); printArray(a); // This is wrong. a = document.getElementsByTagName('*'); printArray(a); // This is wrong. a = [0,1,2,3]; a.buhu = 'wine'; printArray(a); // This is wrong again. a = new Array; a[3] = 3; printArray(a); // This is wrong again. ``` 而遍历数组通常用最普通的 for 循环. ``` function printArray(arr) { var l = arr.length; for (var i = 0; i < l; i++) { print(arr[i]); } } ```