12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // array-to-json.js
- const fs = require('fs');
- let arr1 = require('./zh-CN')
- /**
- * 将数组转换为 { key: value } 格式的 JSON 对象
- * @param {Array} array - 要转换的数组
- * @returns {Object} 生成的 JSON 对象
- */
- function convertArrayToKeyValueJSON(array) {
- if (!Array.isArray(array)) {
- throw new Error('输入必须是数组类型');
- }
- const result = {};
- const seenKeys = new Set(); // 用于检测重复键
- array.forEach((item, index) => {
- const key = String(item); // 强制转换为字符串键
-
- if (seenKeys.has(key)) {
- console.warn(`⚠️ 警告: 键 "${key}" 在索引 ${index} 处重复,将被覆盖`);
- }
-
- seenKeys.add(key);
- result[key] = item; // 保留原始值类型
- });
- return result;
- }
- // 示例用法
- const sampleArray = ['苹果', 123, true, null, '苹果'];
- try {
- // 执行转换
- const jsonObject = convertArrayToKeyValueJSON(arr1);
-
- // 生成带格式化的 JSON 字符串
- const jsonString = JSON.stringify(jsonObject, null, 2);
-
- // 输出到控制台
- console.log('转换结果:');
- console.log(jsonString);
-
- // 写入文件(可选)
- fs.writeFileSync('output1.json', jsonString);
- console.log('\n✅ 已保存到 output1.json');
- } catch (error) {
- console.error('❌ 发生错误:', error.message);
- process.exit(1);
- }
|