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

Angular如何获取数组total的最大最小值并给对应文本设置红绿颜色

实现方案

第一步:在组件ts文件中预计算total的极值

首先在组件类中定义存储最大/最小值的变量,在拿到items数组后计算极值即可:

// 组件类中声明两个成员变量
maxTotal: number;
minTotal: number;

// 以下逻辑在items数组赋值完成后执行(如果是异步接口返回数据就写在接口回调里)
// 避免空数组报错先做长度判断
if (this.items?.length) {
  // 提取所有total字段组成新数组
  const totalList = this.items.map(item => item.total);
  this.maxTotal = Math.max(...totalList);
  this.minTotal = Math.min(...totalList);
}

第二步:修改模板中的ngClass判断规则

把原来的占位判断条件替换为和极值匹配的逻辑即可:

<div *ngFor="let item of items"> 
    <div>{{item.category}}</div>
    <div 
      [ngClass]="{
        'is-green': item.total === minTotal,
        'is-red': item.total === maxTotal
      }"
    >
       {{item.total}}
    </div>
</div>

注:如果存在多个条目total值和最大值/最小值相等的情况,所有符合条件的条目都会自动应用对应样式,符合常规业务需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:06:06