如何按序号获取JavaScript列表中第n个元素的键名与键值
JavaScript按序号遍历对象键值对的实现方案
你给出的示例结构为JavaScript普通对象,若需要按序号获取每一项的键(名称)和值,可通过内置方法将对象的键值对转为可索引的数组实现,具体方案如下:
- 方案1:ES6+ 推荐使用
Object.entries()
该方法会直接返回一个由对象的[键, 值]对组成的数组,数组顺序和普通对象的遍历顺序一致,可直接按索引访问对应项:
// 你的原对象 const targetObj = {"test-item-1": false, "test-item-2": false, "test-item-3": false}; // 转成可按索引访问的键值对数组 const entryList = Object.entries(targetObj); // 按序号遍历 for (let i = 0; i < entryList.length; i++) { const [itemName, itemValue] = entryList[i]; // 此处添加你的后续处理逻辑 console.log(`序号${i}:名称为${itemName},值为${itemValue}`); } // 单独按序号取某一项,示例取第2项(索引从0开始计数) const [targetKey, targetValue] = entryList[1];
- 方案2:兼容旧环境的实现
若需要兼容不支持Object.entries()的旧版本JS环境,可以先用Object.keys()获取键的数组,再通过键取值:
const targetObj = {"test-item-1": false, "test-item-2": false, "test-item-3": false}; const keyList = Object.keys(targetObj); for (let i = 0; i < keyList.length; i++) { const itemName = keyList[i]; const itemValue = targetObj[itemName]; // 后续处理逻辑 }
注意:普通对象的键排序规则受ES规范约束,数字格式的键会被自动按升序排在最前,若你需要严格保证项的顺序和插入顺序完全一致,建议使用
Map结构存储数据,Map的entries()方法返回的数组完全遵循插入顺序,不受键类型影响。
内容的提问来源于stack exchange,提问作者Oren Lindsey
相关产品推荐
相关产品推荐

