簡體   English   中英

如果 OF 元素中的組長度大於零,則檢查對象數組

[英]Check in object array if the length of groups is greater than zero in a OF element

我有一個對象數組。 在這個對象中,我有一組決定數量的組。

有一種方法可以檢查對象數組中的組是否大於零,其中 OF 元素等於 12.2。

演示

我試過的

Sort = [
    {
      id: 1,
      of: 12.2,
      tam: 's',
      name: 'Color Run',
      groups: [
        {
          type: 'type1',
          quant: 21
        }
      ]
    },
    {
      id: 2,
      of: 12.2,
      tam: 'M',
      name: 'Color Run',
      groups: []
    },
    {
      id: 3,
      of: 2.2,
      tam: 'L',
      name: 'Works',
      groups: []
    }
  ];

  ngOnInit() {
    console.log(this.Sort)
    var x = this.Sort.forEach(element => {
      if(element.of == 12.2){
        if(element.groups.length > 0){
          return true;
        }
        else{
          return false;
        }
      }
      
    });
    console.log(x)
  }

forEach忽略返回值並對所有元素執行。 因此,使用some()此處的文檔)會更容易且性能更高,例如

const exists = this.Sort.some(s => s.of === 12.2 && s.groups.length > 0);

如果你無論如何都想使用 forEach,你可以將你的布爾值放在循環之外,初始值為false ,然后僅當元素存在時才將它的值設置為 true ,例如

let exists = false;
this.Sort.forEach(e => {
  if (e.of === 12.2 && e.groups.length > 0) {
    exists = true;
  }
});

我只是發布沒有角度部分來運行並查看輸出

 Sort = [ { id: 1, of: 12.2, tam: 's', name: 'Color Run', groups: [ { type: 'type1', quant: 21 } ] }, { id: 2, of: 12.2, tam: 'M', name: 'Color Run', groups: [] }, { id: 3, of: 2.2, tam: 'L', name: 'Works', groups: [] } ]; console.log(this.Sort) var x = this.Sort.filter(element => element.of === 12.2 && element.groups.length >0); console.log("Filtered Output") console.log(x)

你可以這樣試試

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  Sort = [
    {
      id: 1,
      of: 12.2,
      tam: 's',
      name: 'Color Run',
      groups: [
        {
          type: 'type1',
          quant: 21
        }
      ]
    },
    {
      id: 2,
      of: 12.2,
      tam: 'M',
      name: 'Color Run',
      groups: []
    },
    {
      id: 3,
      of: 2.2,
      tam: 'L',
      name: 'Works',
      groups: []
    }
  ];

  ngOnInit() {
    console.log(this.Sort);
    let groupLengthList = [];
    for (const data of this.Sort) {
      if (data.of === 12.2) {
        if (data.groups.length > 0) {
          groupLengthList.push(true);
        } else {
          groupLengthList.push(false);
        }
      }
    }
    console.log(groupLengthList);
  }
}

只需使用過濾器原型即可完成這項工作:

 let Sort = [ { id: 1, of: 12.2, tam: 's', name: 'Color Run', groups: [ { type: 'type1', quant: 21 } ] }, { id: 2, of: 12.2, tam: 'M', name: 'Color Run', groups: [] }, { id: 3, of: 2.2, tam: 'L', name: 'Works', groups: [] } ]; let res = Sort.filter(e => e.of == 12.2 && e.groups.length > 0); console.log(res)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM