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

Swift 如何反转数组中按指定属性连续同值构成的子组元素

实现方案

核心逻辑

  • 遍历原数组,将连续color属性相同的元素划分为独立子组,子组之间保留原有先后顺序
  • 仅对每个子组内部的元素执行反转操作,子组的排列顺序不做调整
  • 将所有处理后的子组拼接为最终的一维数组

代码实现(Ruby示例,与你给出的代码语法匹配)

# slice_when按连续同color拆分分组,flat_map反转每组后拼接为新数组
processed_vehicles = Vehicles.slice_when { |prev, current| prev.color != current.color }
                             .flat_map { |group| group.reverse }

效果说明

对于你给出的示例输入:

  • 首先拆分得到三个子组:[red组的三个Auto元素, blue组的单个Bike元素, black组的单个Bike元素]
  • 分别反转后,单元素的blue、black组无变化,red组顺序反转
  • 拼接后得到的结果和你给出的预期输出完全一致,也满足你补充的[a,b,c,d,e,f,g,h,i]转化为[c,b,a,f,e,d,i,h,g]的规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:45:06