React 使用 includes 函数时如何排除数组内的指定值
实现方案
你可以根据后续业务扩展需求,选择以下两种常用实现方式:
方案1:直接在校验逻辑中增加排除判断
改动最小,适合仅临时排除该值、后续不会新增排除项的场景:
const renderMessage = (): boolean => { const invalidCode = apiResponse.invalidCode; // 碰到code_5430直接返回false,交由外部单独做逻辑处理 return invalidCode !== 'code_5430' && !INVALID_CODES.includes(invalidCode); };
逻辑说明:只有当返回的错误码不是code_5430、且不在预设的无效码列表中时,才会返回true允许渲染消息。
方案2:提前过滤出排除指定值的校验数组
如果后续可能新增需要单独处理的无效码,推荐使用该方案,避免renderMessage内的判断逻辑越来越臃肿:
// 提前定义所有需要单独处理的code列表 const EXCLUDED_CODES = ['code_5430']; // 过滤出实际用于渲染校验的无效码数组 const RENDER_VALIDATE_CODES = INVALID_CODES.filter(code => !EXCLUDED_CODES.includes(code)); const renderMessage = (): boolean => { return !RENDER_VALIDATE_CODES.includes(apiResponse.invalidCode); };
后续如果要新增单独处理的码值,只需要往EXCLUDED_CODES数组中添加对应元素即可,不需要修改核心校验逻辑。
内容的提问来源于stack exchange,提问作者Bryl
相关产品推荐
相关产品推荐

