javascript中数组的keys()方法返回一个数组索引的迭代器,逐个产出从0开始的整数索引,而非字符串键名;它仅包含数字索引,不包含非数字属性,可用for...of、扩展运算符或array.from()遍历或转换为数组。

JavaScript 中数组的 keys() 方法返回一个**数组索引的迭代器**,不是“键名”(因为数组没有传统意义上的字符串键名,只有数字索引),它逐个产出从 0 开始的整数索引。
keys() 返回的是索引迭代器,不是键名
数组是基于数字索引的有序集合,它的“键”就是索引(0, 1, 2, ...),不是对象那样的字符串属性名。所以 arr.keys() 实际返回的是一个可遍历的 Array Iterator,每次调用 next() 得到形如 { value: 0, done: false } 的对象。
-
[10, 20, 30].keys()产出:0 → 1 → 2 - 它不会产出
"0"字符串,也不会产出数组可能拥有的额外属性(比如arr.foo = "bar")
常用用法:for...of 遍历索引
最简洁的方式是配合 for...of 直接获取每个索引:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
const arr = ['a', 'b', 'c'];
for (const index of arr.keys()) {
console.log(index); // 输出:0, 1, 2
}
转成数组或展开使用
如果需要一次性拿到所有索引,可以用扩展运算符或 Array.from():
-
[...arr.keys()]→[0, 1, 2] -
Array.from(arr.keys())→[0, 1, 2] - 也可用于构造新数组:
Array.from(arr.keys(), i => `item-${i}`)→["item-0", "item-1", "item-2"]
注意和 Object.keys() 的区别
Object.keys() 返回对象自身可枚举属性的字符串键名(如 ["prop1", "prop2"]),而 Array.prototype.keys() 只返回纯数字索引,且**不包含非数字属性**:
const arr = ['x', 'y']; arr.custom = 'ignored'; console.log([...arr.keys()]); // [0, 1] console.log(Object.keys(arr)); // ["0", "1", "custom"]不复杂但容易忽略:数组的 keys 是索引序列,不是键名映射,别把它当成 Object.keys 的数组版。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










