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

Swift中如何从二维数组中移除指定整数的所有实例?

解决Swift二维数组移除指定整数所有实例的问题

你需要的是遍历每个子选票数组,移除其中目标候选者的所有票数,而不是过滤整个子数组。正确的做法是用map遍历外层数组,对每个内层数组用filter剔除目标值:

// 假设要移除候选者2的所有票数
let target = 2
var newBallots = allBallots.map { ballot in
    ballot.filter { $0 != target }
}

为什么你之前的尝试不对:

  • allBallots.filter { $0 != 2 }:外层数组的元素是[Int]类型,和整数2直接比较会触发类型不匹配错误,编译器根本不会通过。
  • allBallots.filter { $0 != [2] }:这是在过滤掉完全等于[2]的子数组,只会移除那些只有候选者2的选票,其他选票里的2依然保留。
  • allBallots.filter { $0.contains(2) }:这是反过来保留所有包含2的子数组,和你要移除2的需求完全相反。

额外优化(可选):

如果某个选票在移除目标候选者后变成空数组(比如该选民的所有候选都被淘汰),可以额外过滤掉这些无效选票:

var newBallots = allBallots.map { $0.filter { $0 != target } }
                           .filter { !$0.isEmpty }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:40:27