app2.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // array-to-json.js
  2. const fs = require('fs');
  3. let arr1 = require('./zh-CN')
  4. /**
  5. * 将数组转换为 { key: value } 格式的 JSON 对象
  6. * @param {Array} array - 要转换的数组
  7. * @returns {Object} 生成的 JSON 对象
  8. */
  9. function convertArrayToKeyValueJSON(array) {
  10. if (!Array.isArray(array)) {
  11. throw new Error('输入必须是数组类型');
  12. }
  13. const result = {};
  14. const seenKeys = new Set(); // 用于检测重复键
  15. array.forEach((item, index) => {
  16. const key = String(item); // 强制转换为字符串键
  17. if (seenKeys.has(key)) {
  18. console.warn(`⚠️ 警告: 键 "${key}" 在索引 ${index} 处重复,将被覆盖`);
  19. }
  20. seenKeys.add(key);
  21. result[key] = item; // 保留原始值类型
  22. });
  23. return result;
  24. }
  25. // 示例用法
  26. const sampleArray = ['苹果', 123, true, null, '苹果'];
  27. try {
  28. // 执行转换
  29. const jsonObject = convertArrayToKeyValueJSON(arr1);
  30. // 生成带格式化的 JSON 字符串
  31. const jsonString = JSON.stringify(jsonObject, null, 2);
  32. // 输出到控制台
  33. console.log('转换结果:');
  34. console.log(jsonString);
  35. // 写入文件(可选)
  36. fs.writeFileSync('output1.json', jsonString);
  37. console.log('\n✅ 已保存到 output1.json');
  38. } catch (error) {
  39. console.error('❌ 发生错误:', error.message);
  40. process.exit(1);
  41. }