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

FiveM脚本开发:如何在NewPassagers元素全移入OnBusPassagers后清空数组?

FiveM脚本数组迁移与清空的正确实现

原代码存在的问题

  • 循环内错误将整个NewPassagers数组插入OnBusPassagers,而非逐个迁移数组元素
  • 使用NewPassagers = nil不是标准的数组清空方式,若代码中存在其他对该数组的引用,会引发不可预期的问题

修正后的实现方案

以下两种方式都能满足需求,可根据场景选择:

方式一:迁移同时原地清空数组(保留原数组引用)

if GetVehicleNumberOfPassengers(veh) > 1 then
    -- 反向循环避免数组长度变化导致元素漏处理
    for i = #NewPassagers, 1, -1 do
        -- 将当前元素插入目标数组
        table.insert(OnBusPassagers, NewPassagers[i])
        -- 从原数组移除该元素
        table.remove(NewPassagers, i)
    end
end

方式二:迁移后重置为空数组(无其他引用时推荐)

if GetVehicleNumberOfPassengers(veh) > 1 then
    -- 逐个迁移元素
    for _, passenger in ipairs(NewPassagers) do
        table.insert(OnBusPassagers, passenger)
    end
    -- 直接重置为空数组,完成清空
    NewPassagers = {}
end

说明

  • 反向循环移除元素的优势在于:正向循环时,移除元素会导致后续元素索引前移,容易跳过部分元素;反向循环则不会出现此问题
  • 若NewPassagers仅在当前逻辑中使用,直接赋值为空数组的方式更简洁高效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:03:22