如何将私有API文本文件转换为JavaScript键值对对象?
将文本文件转换为JavaScript对象
输入文本内容
Kevin 25 Mary 24
期望输出
{ Kevin: "25", Mary: "24" }
实现方案
Node.js 环境(读取本地文件)
如果是在Node.js环境下处理本地文本文件,可使用内置fs模块读取内容后转换:
const fs = require('fs'); fs.readFile('data.txt', 'utf8', (err, data) => { if (err) { console.error('读取文件失败:', err); return; } // 分割内容为行数组,过滤空行 const lines = data.split('\n').filter(line => line.trim()); const result = {}; // 每两行一组生成键值对 for (let i = 0; i < lines.length; i += 2) { const key = lines[i].trim(); // 处理可能的奇数行情况,避免报错 const value = lines[i + 1]?.trim() ?? ''; result[key] = value; } console.log(result); });
浏览器环境(处理上传文件)
如果是在浏览器中处理用户上传的文本文件,可使用FileReader API:
<input type="file" id="fileInput" accept=".txt"> <script> document.getElementById('fileInput').addEventListener('change', (e) => { const file = e.target.files[0]; if (!file) return; const reader = new FileReader(); reader.onload = (event) => { const lines = event.target.result.split('\n').filter(line => line.trim()); const result = {}; for (let i = 0; i < lines.length; i += 2) { const key = lines[i].trim(); const value = lines[i + 1]?.trim() ?? ''; result[key] = value; } console.log('转换后的对象:', result); }; reader.readAsText(file); }); </script>
核心逻辑说明
- 将文本内容按换行符分割为数组,过滤空行以避免无效内容干扰
- 以步长为2遍历数组,将第
i个元素作为对象的键,第i+1个元素作为对应值 - 用可选链操作符(
?.)和空值合并运算符(??)处理文本行数为奇数的情况,防止报错
内容的提问来源于stack exchange,提问作者Nerdx64
相关产品推荐
相关产品推荐

