import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); // 读取面试题数据 const interviewQuestionsData = JSON.parse( fs.readFileSync(path.join(__dirname, 'src/data/interviewQuestions.json'), 'utf-8') ); // 解析面试题内容 function parseInterviewQuestions(content) { if (!content) return []; const questions = []; const lines = content.split('\n').filter(line => line.trim()); let currentQuestion = null; let currentAnswer = ''; let collectingAnswer = false; let questionIndex = 0; for (let i = 0; i < lines.length; i++) { const line = lines[i].trim(); // 跳过标题行 if (line.startsWith('#')) { continue; } // 匹配问题(数字开头) if (/^\d+\./.test(line)) { // 保存上一个问题 if (currentQuestion && currentAnswer) { questions.push({ id: `q${questionIndex + 1}`, question: currentQuestion, answer: currentAnswer.trim() }); questionIndex++; } // 开始新问题 currentQuestion = line.replace(/^\d+\.\s*/, '').trim(); currentAnswer = ''; collectingAnswer = false; } // 匹配答案标记 else if (line.includes('答案:') || line.includes('示例回答:') || line.includes('参考答案:')) { collectingAnswer = true; // 提取答案内容(可能在同一行) const answerMatch = line.match(/(?:答案:|示例回答:|参考答案:)(.*)/); if (answerMatch && answerMatch[1]) { currentAnswer = answerMatch[1].trim(); } } // 收集答案内容 else if (collectingAnswer && line) { if (currentAnswer) { currentAnswer += ' '; } currentAnswer += line; } } // 保存最后一个问题 if (currentQuestion && currentAnswer) { questions.push({ id: `q${questionIndex + 1}`, question: currentQuestion, answer: currentAnswer.trim() }); } return questions; } // 创建岗位群到面试题的映射 const questionsMap = {}; interviewQuestionsData.forEach(item => { const groupName = item['岗位群名称']; const questions = parseInterviewQuestions(item['面试题内容']); // 只保留前10个问题 questionsMap[groupName] = questions.slice(0, 10); }); // 输出每个岗位群的前3个问题用于更新 console.log('export const interviewQuestionsData = {'); Object.entries(questionsMap).forEach(([groupName, questions]) => { console.log(` "${groupName}": [`); questions.slice(0, 3).forEach((q, index) => { console.log(` {`); console.log(` id: "${q.id}",`); console.log(` question: "${q.question.replace(/"/g, '\\"')}",`); console.log(` answer: \`${q.answer.replace(/`/g, '\\`')}\``); console.log(` }${index < 2 ? ',' : ''}`); }); console.log(` ],`); }); console.log('};');