gpt4 book ai didi

Javascript 数组拼接而不改变索引

转载 作者:可可西里 更新时间:2023-11-01 01:39:15 25 4
gpt4 key购买 nike

我正在聊天并使用数组来容纳用户。这是我的问题:

用户 1 加入并通过推送在数组中获得索引 0。User2 加入并通过推送在数组中获得索引 1。

User1 断开连接并通过拼接移除。

现在 User2 成为索引 0。

User1 重新连接并通过推送获得索引 1。

User2 断开连接,索引 1 被删除,现在是 User1。

这当然会引起问题。

所以我的问题是如何在不改变其他元素的索引的情况下从数组中删除该项目?我走错路了吗?

最佳答案

为什么不使用 splice() 从数组中删除项目,为什么不直接将值设置为 nullundefined

然后当您添加新用户时,您只需扫描数组即可找到第一个可用槽。

javascript 数组只是项目列表 - 它们不像您在 PHP 中可能熟悉的那样键控到特定键。所以如果你想在数组中保持相同的位置,你不能删除其他项目 - 你需要保留它们,并将它们标记为空。


你可能会浏览这样的东西:

var users = [];
function addUser(user) {
var id = users.indexOf(null);
if (id > -1) {
// found an empty slot - use that
users[id] = user;
return id;
} else {
// no empty slots found, add to the end and return the index
users.push(user);
return users.length - 1;
}
}
function removeUser(id) {
users[id] = null;
}

关于Javascript 数组拼接而不改变索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17387571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com