TypeScript 统计选中id数据为数组

id目标结构:"IDs":"[1,2,3,4,5,6]"
因为是在 ngFor 循环外用ID数组,取不到,所以赋给本地变量idAll.
当前的情况是以 items 为单位输出多个数组。

“位置1” 能以多个数组形式输出ID
“位置2” 只能输出最后一组ID

感觉现在 forEach() 用的不到位

如下:
getTotal(){
this.datas.forEach(item => {
this.arr = (item.items.filter(item1 => item1.checked).map(item1=> item1.id))
console.log(this.idAll); // 位置1
})
console.log(this.idAll); // 位置2
}

当前结构tem:

<div>
  <label><input type="checkbox" [(ngModel)]="checked" (change)="selectAll()">全选</label>
  <div style="padding-left:1em" *ngFor="let item of datas">

    <input id="checkbox6" type="checkbox" [(ngModel)]="item.checked" (change)="selectItemAll(item)">
    <label id="checkbox6">{{item.title}}</label>

    <div style="padding-left:1em" *ngFor="let item1 of item.items">
      <label><input type="checkbox" [(ngModel)]="item1.checked" (change)="selectItem(item1,item)">选择</label>
      名称:{{item1.name}} 价格:{{item1.price}}
    </div>  

  </div>
  总价:{{getTotal()}
</div>


数据结构包括ID(即 item1.id):

  public: idAll: number[];

  checked = false;
  datas = [{
    checked: false,
    title: '北京大学',
    items: [{
      checked: false,
      name: '商品11',
      price: 2,
      id: 601
    }, {
      checked: false,
      name: '商品12',
      price: 3,
      id: 602
    }]
  }, {
    checked: false,
    title: '复旦大学',
    items: [{
      checked: false,
      name: '商品21',
      price: 2,
      id: 603
    }, {
      checked: false,
      name: '商品22',
      price: 3,
      id: 604
    }]
  }];
阅读 1.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进