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

如何使用.includes()方法验证arrayName.push()添加到registeredUsers数组的值

问题解决:用.includes()校验数组新增元素的重复性

你的核心需求是拦截重复用户,用.includes()验证要添加的用户是否已存在,但原代码里犯了一个关键错误——数组的push()方法返回的是数组的新长度,不是你添加的那个元素值,所以你用registerNew(也就是数组长度)去调用.includes(),永远不会匹配到数组里的用户名,逻辑完全走反了。

正确的实现思路

正确的流程应该是先检查,后添加,而不是先添加再校验:

  • 先把要注册的用户名存成单独变量
  • 用.includes()检查这个用户名是否已经在registeredUsers数组中
  • 如果存在:直接提示重复,不执行添加操作
  • 如果不存在:把用户名push进数组,提示欢迎

修正后的代码

let registeredUsers = ['Power Ranger 1', 'Power Ranger 2', 'Power Ranger 3'];

function register() {
    // 定义要注册的新用户(实际场景可替换为表单输入等动态值)
    const newUsername = "Power Ranger 1";

    // 先检查用户是否已存在
    const isUserExist = registeredUsers.includes(newUsername);

    if (isUserExist) {
        alert("Username already exists!");
    } else {
        // 不存在才执行添加操作
        registeredUsers.push(newUsername);
        alert("Welcome New User");
    }

    console.log(registeredUsers);
}

register();

原代码的其他问题说明

  • 你之前先push再用pop()回滚的方式虽然能实现功能,但多了不必要的数组操作,不如先检查再添加高效
  • registeredUsers.length - 1获取最后一个元素的操作在正确流程里不需要,因为我们已经提前持有了要添加的用户名变量

内容的提问来源于stack exchange,提问作者dakupz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:40:32