如何避免在使用展开运算符时编写冗余的if判断语句?
代码优化方案
你这段代码的核心冗余点是学生对象的创建逻辑在if和else分支中完全重复,同时初始的newStudents = [{}]属于无效初始化(后续会被完全覆盖)。可以通过以下方式优化:
优化思路
- 抽离重复的学生对象创建逻辑,单独存储为变量
- 统一处理本地存储数据的解析:存在则解析,不存在则默认空数组
- 用扩展运算符直接合并原数组(或空数组)与新对象,简化数组生成逻辑
优化后的代码
const students = localStorage.getItem("Students"); // 抽离重复的学生对象 const newStudent = { firstName: firstNameInput.current.value, familyName: familyNameInput.current.value, email: emailInput.current.value, dob: dob, }; // 解析本地存储,无数据则用空数组兜底 const parsedStudents = students ? JSON.parse(students as string) : []; // 合并生成新数组 const newStudents = [...parsedStudents, newStudent];
额外说明
- 消除了分支冗余,逻辑更简洁易读
- 移除了无意义的
newStudents = [{}]初始化 - 保持了原代码的所有功能:无论本地存储是否有数据,都能正确添加新学生
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

