You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从有序列表创建以序号为索引/键的数组或对象?

从HTML有序列表生成键为序号的对象

下面两种方法可以实现需求,把有序列表的序号作为对象键,列表项内容作为对应值:

方法1:遍历节点列表直接构建对象

先获取目标有序列表,再遍历其下的<li>元素,用索引+1作为键(对应有序列表的起始序号1),提取列表项的文本内容作为值:

const targetOl = document.querySelector('ol');
const listObj = {};

targetOl.querySelectorAll('li').forEach((listItem, idx) => {
  listObj[idx + 1] = listItem.textContent.trim();
});

console.log(listObj);

输出结果:

{"1": "First list item", "2": "Second list item", "3": "Third list item"}

方法2:用Array.from配合Object.fromEntries实现

如果想用Array.from处理,可以先将节点列表转为包含键值对的数组,再转成对象:

const listItems = document.querySelectorAll('ol li');
const listObj = Object.fromEntries(
  Array.from(listItems, (item, idx) => [idx + 1, item.textContent.trim()])
);

console.log(listObj);

这种方式里,Array.from的第二个参数是映射函数,直接生成[键, 值]格式的数组,再通过Object.fromEntries转换为目标对象。

注:textContent.trim()用于去除文本前后的空白字符,如果不需要清理空白,直接用item.textContent即可。

内容的提问来源于stack exchange,提问作者pileup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 11:15:37