Javascript数组在第二次运行后变为空

Javascript数组在第二次运行后变为空,javascript,Javascript," " 如果我在控制台中运行此命令,则输出为[{id:3,用户名:'rohan',房间:'playerly'}] 但是,如果我只是注释掉调用并打印数组。它是空的 " " 从第一次运行开始,存储在对象中的值必须永远在用户数组中。如果我不添加值,为什么这是空的?下面的演示功能有两个独立的对象userObjA和userObjB,一个名为addUser…user的箭头函数,由于spread运算符,它可以接受任意数量的给定对象:。。。然后,magic返回包装在对象数组中的所述对象 注意:在演示过程中没有常

"

"

如果我在控制台中运行此命令,则输出为[{id:3,用户名:'rohan',房间:'playerly'}]

但是,如果我只是注释掉调用并打印数组。它是空的

"

"


从第一次运行开始,存储在对象中的值必须永远在用户数组中。如果我不添加值,为什么这是空的?

下面的演示功能有两个独立的对象userObjA和userObjB,一个名为addUser…user的箭头函数,由于spread运算符,它可以接受任意数量的给定对象:。。。然后,magic返回包装在对象数组中的所述对象

注意:在演示过程中没有常数受到伤害-健康自由放射学let用于无痛声明和分配

演示 让userObjA={ id:3, 姓名:“Rohan”, 房间:42号套房 }; 让userObjB={ id:4, 名称:“戴尔”, 房间:'单人601' }; const addUser=…user=>{ 让用户=[]; users.pushuser; 返回用户.flat; };
console.logadduserobja,userObjB;除非您完全理解声明空值(如刚才提到的内容)在使用const定义时不能直接更改,否则不要使用const声明任何空值,如:[],或{},或null。使用var或let。@zer00ne推送到常量数组是完全有效的。我根本无法重现他的问题。您是否尝试过在addUser中添加关键字并检查每行代码中发生的情况?Toward必须永远在users数组中-它可能会在某个时间点被删除,但您不会显示任何代码,这样做。addUser返回包装在另一个对象中的用户对象。您看到的用户数组应该是…?现在我的qus是,如果您删除函数调用addUser,然后只打印用户数组,会怎么样?这两个对象是否将保留在阵列中?这是我的观点。请定义存储/保存数据的版本。在正常情况下,变量值的寿命与函数/表达式等当前运行进程的生命周期一样长(如果不是更短的话)。假设addUser第一次完成运行,它返回一个从给定对象组收集的objectArray。下一次addUser运行时,您是否希望它返回…?…但是,如果我只是注释掉调用并打印数组,那么还是这样。它是空的。您注释掉的代码是对addUseruser的调用,它实际上更改了对用户数组的引用。既然注释掉了,那么期望数组用户像最初一样坐着是空的并且从未更改是合乎逻辑的。对arraow函数使用let和const。
const users = []

const addUser = ({ id, username, room }) => {
    // Clean the data
    username = username.trim().toLowerCase()
    room = room.trim().toLowerCase()

    // Validate the data
    if (!username || !room) {
        return {
            error: 'Username and room are required'
        }
    }
    // Check for existing user
    const existingUser = users.find((user) => {
        return user.username === username || user.room === room
    })

    // Validate username
    if (existingUser) {
        return {
            error: 'Username already exists!'
        }
    }

    // Store user
    const user = { id, username, room }
    users.push(user)
    return { user }
}

addUser({
    id: 03,
    username: 'rohan',
    room: 'playground'
})
console.log(users)
//addUser({
//    id: 03,
//    username: 'rohan',
//    room: 'playground'
//})
console.log(users)