如何将指定结构的JavaScript嵌套数组按特定格式写入文件?
解决方案:将嵌套数组转换为带索引格式并写入文件
我来帮你搞定这个需求!要把给定的嵌套JavaScript数组转换成你指定的带索引格式并写入文件,咱们用Node.js就能轻松实现(毕竟Node自带文件系统模块,操作起来很方便)。
实现代码
const fs = require('fs'); const ex = [ {'id': 10, 'name': 'b', 'r': ['bill', 'ben']}, {'id': 12, 'name': 'c', 'r': ['carl']}, {'id': 4, 'name': 'a', 'r': ['alan', 'alexander', 'alexis']}, {'id': 14, 'name': 'z', 'r': []} ]; // 格式化内层r数组为带索引的字符串 function formatRArray(rArray) { return rArray.map((item, index) => `${index}: '${item}'`).join(', '); } // 格式化整个数组为目标格式 function formatArray(arr) { return arr.map((obj, outerIndex) => { // 处理对象的每个属性,替换r数组为格式化后的内容 const objContent = Object.entries(obj) .map(([key, value]) => { if (key === 'r') { return `'${key}': ${formatRArray(value)}`; } // 数字类型不需要加单引号,字符串类型加上 return `'${key}': ${typeof value === 'number' ? value : `'${value}'`}`; }) .join(', '); // 加上外层元素的索引 return `${outerIndex}: ${objContent}`; }).join(', '); } // 生成最终要写入的字符串 const outputContent = formatArray(ex); // 写入文件(这里用output.txt作为文件名,你可以根据需要修改) fs.writeFile('output.txt', outputContent, (err) => { if (err) throw err; console.log('文件已成功生成!'); });
代码说明
- 依赖模块:使用Node.js内置的
fs模块来完成文件写入操作,不需要额外安装任何依赖。 formatRArray函数:专门处理内层的r数组,把数组元素转换成索引: '元素值'的格式,并用逗号分隔。比如['bill','ben']会变成0: 'bill', 1: 'ben'。formatArray函数:遍历外层数组,给每个元素加上外层索引,同时处理每个对象的属性——遇到r属性时替换成格式化后的字符串,其他属性根据类型处理(数字不加单引号,字符串加单引号)。- 文件写入:最后用
fs.writeFile把生成的目标字符串写入文件,执行后你就能在当前目录下找到output.txt,里面的内容完全符合你要求的格式。
最终输出效果
运行代码后,output.txt中的内容如下:
0: 'id': 10, 'name': 'b', 'r': 0: 'bill', 1: 'ben', 1: 'id': 12, 'name': 'c', 'r': 0: 'carl', 2: 'id': 4, 'name': 'a', 'r': 0: 'alan', 1: 'alexander', 2: 'alexis', 3: 'id': 14, 'name': 'z', 'r':
内容的提问来源于stack exchange,提问作者user6118527
相关产品推荐
相关产品推荐

