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

Angular项目中如何高效为数组元素按条件批量添加category属性

实现方案

200~300条的数据量级极小,原生数组方法已经可以满足最高性能要求,以下分两种常用场景给出实现:

场景1:允许原地修改原数组(性能最高)

直接遍历数组为每个对象新增属性即可,时间复杂度O(n),额外空间开销O(1),是内存占用最低的方案:

data.forEach(item => {
  item.category = item.sampleData.length > 0 ? item.status : 'on hold';
})

场景2:Angular OnPush变更检测场景(不可变更新)

如果你的组件使用了ChangeDetectionStrategy.OnPush优化,需要返回新数组触发视图更新,可以用map做不可变处理,时间复杂度O(n):

data = data.map(item => ({
  ...item,
  category: item.sampleData.length > 0 ? item.status : 'on hold'
}))
补充说明

两种方案都是当前场景下的最优实现:

  • 原生数组方法已经经过JS引擎高度优化,不需要额外引入第三方处理库,也不需要手动写for循环,可读性和性能都达标
  • 300条数据的处理耗时在微秒级,不存在性能瓶颈,可根据自己的业务场景选择对应方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:27:03