如何在JavaScript中将API请求的单个字符串合并为一个数组?
没问题!要把列表转换成你要的["explosive", "incendiary_device"]这种数组格式,在turnArray()函数里可以这样实现,分两种常见情况来处理:
情况1:列表是页面上的HTML元素(比如
<ul>/<ol>) 如果你的列表是网页里的标准列表结构,直接通过DOM操作提取内容即可:
function turnArray() { // 先获取所有列表项,这里把选择器换成你实际列表的选择器(比如#my-list li 或者 .danger-list li) const listItems = document.querySelectorAll('.target-list li'); // 把DOM节点列表转成数组,再提取文本并格式化 return Array.from(listItems).map(item => { // 去除文本前后空格,把中间的空格替换成下划线(和你的示例格式匹配) return item.textContent.trim().replace(/\s+/g, '_'); }); } // 调用试试 const dangerousItems = turnArray(); console.log(dangerousItems); // 输出就是你要的数组格式
小细节说明:
- 一定要替换
document.querySelectorAll()里的选择器,匹配你实际的列表元素 trim()是为了去掉列表项文本前后的多余空格replace(/\s+/g, '_')是把文本里的空格(比如"incendiary device"里的空格)换成下划线,如果你不需要这个转换,删掉这部分就行
情况2:列表是从图片识别出的文本字符串
如果你的列表是从图片识别得到的纯文本(比如一段按换行分隔的字符串),可以这样处理:
function turnArray() { // 假设这是从图片识别出来的列表文本(换行分隔每一项) const listText = `explosive incendiary device flammable liquid toxic substance`; // 按换行分割成数组,再逐个处理 return listText.split('\n') .map(line => line.trim().replace(/\s+/g, '_')) .filter(line => line); // 过滤掉可能的空行 }
调用这个函数后,就能直接得到你想要的数组啦!
内容的提问来源于stack exchange,提问作者YVH
相关产品推荐
相关产品推荐

