首页 > 解决方案 > 在类型脚本中循环不同的表

问题描述

我有两张桌子X {n_fnc : number , name : string :, date : Date }Y{id:number , n_fnc : number , status : String }. 我想创建一个列表或一个表,其中仅包含n_fnc表 X 中的状态为表 Y =“act”的表。例如,我从表 X 中获取 n_fnc 并在表 Y 中查找所有具有相同 n_fnc 的行,如果我发现我找到的所有行都有 status = act 我将此 n_f​​nc 添加到表或列表中,否则我不“不要添加任何东西。

  n_fncwhohaveallstatusact : number []=[];
this.X.forEach(element => {
    let s= 0;
     let k=0; 
     console.log("element",element  )
     console.log("test")
    this.Y.forEach(org =>{
     if(element.n_fnc=== org.n_fnc){
       if(org.status=='act'){
         s=org.n_fnc
         k=0;
         console.log(s);
       }
       else if(org.status!='act' && org.status!=''){

         k=1
       }
       else{
         k=2
       }
     }



    })
    if(k!= (1 || 2 )  ){
     this.n_fncwhohaveallstatusact .push(s)
    }

控制台没有向我显示任何东西,就像他没有用 foreach 循环 table X 有什么建议吗?

标签: angulartypescript

解决方案


应该能够通过使用map(),filter()和来实现这一点every()

const X = [];
const Y = [];

const result = X.map(({n_fnc}) => n_fnc)
                .filter(v => Y.filter(({n_fnc}) => n_fnc === v)
                              .every(({status}) => status === 'act'));


推荐阅读