js的索引的实现
JavaScript 索引的实现方式
在 JavaScript 中,索引通常用于快速访问数据结构中的元素,常见于数组、对象、字符串等场景。以下是几种典型索引实现方式:
数组索引
数组通过数字索引直接访问元素,索引从 0 开始:
const arr = ['a', 'b', 'c'];
console.log(arr[1]); // 输出 'b'
对象属性索引
对象通过字符串键(类似索引)访问属性值:
const obj = { id: 1, name: 'Alice' };
console.log(obj['name']); // 输出 'Alice'
Map 索引
ES6 的 Map 支持任意类型作为键:
const map = new Map();
map.set('key1', 'value1');
console.log(map.get('key1')); // 输出 'value1'
字符串索引
字符串可通过索引访问字符(类似数组):
const str = 'hello';
console.log(str[1]); // 输出 'e'
自定义索引实现
通过对象或 Map 实现自定义索引结构:
class CustomIndex {
constructor() {
this.data = {};
}
set(key, value) {
this.data[key] = value;
}
get(key) {
return this.data[key];
}
}
索引优化技巧
- 使用
Map替代对象存储动态键值对 - 对大型数组可建立辅助索引对象提升查找速度
- 使用
WeakMap实现非字符串键且内存敏感的索引
索引性能注意事项
- 数组索引访问时间复杂度为 O(1)
- 对象属性访问平均为 O(1),但可能因哈希碰撞降级
- 避免在循环中频繁重建索引结构







