You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免在使用展开运算符时编写冗余的if判断语句?

代码优化方案

你这段代码的核心冗余点是学生对象的创建逻辑在if和else分支中完全重复,同时初始的newStudents = [{}]属于无效初始化(后续会被完全覆盖)。可以通过以下方式优化:

优化思路

  1. 抽离重复的学生对象创建逻辑,单独存储为变量
  2. 统一处理本地存储数据的解析:存在则解析,不存在则默认空数组
  3. 用扩展运算符直接合并原数组(或空数组)与新对象,简化数组生成逻辑

优化后的代码

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 19:22:39