Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何比较es6中的两个对象_Angular_Typescript_Ecmascript 6_Angular Material - Fatal编程技术网

Angular 如何比较es6中的两个对象

Angular 如何比较es6中的两个对象,angular,typescript,ecmascript-6,angular-material,Angular,Typescript,Ecmascript 6,Angular Material,如何比较2个对象数组,当值匹配时,选中“角度材质”复选框?例如:在这种情况下,operator对象匹配,所以选中了operator的复选框 应用程序ts const arr1 = [ { "id":"1", "name":"operator" }, { "id":"2", "name":"admins" } ] const arr2 = [ { "id":"1", "name":"op

如何比较2个对象数组,当值匹配时,选中“角度材质”复选框?例如:在这种情况下,
operator
对象匹配,所以选中了operator的复选框

应用程序ts

const arr1 = [ 
   { 
      "id":"1",
      "name":"operator"
   },
   { 
      "id":"2",
      "name":"admins"
   }
]
const arr2 = [ 
   { 
      "id":"1",
      "name":"operator"
   },
   { 
      "id":"3",
      "name":"client"
   }
]

this.arr1.forEach(a1Obj => {
    this.arr2.some(a2Obj => {
        if (a2Obj.id === a1Obj.id) {
            console.log(a1Obj);
        }
    })
});
app.html

<div class="col" *ngFor="let group of groups; let i = index">
    <mat-checkbox value="group.id" [labelPosition]="'after'" [checked]="true" (change)="assignGroups($event, group.id)">
        {{ group.name }}
    </mat-checkbox>
</div>

{{group.name}
试试下面的方法

将阵列视为阵列1和阵列2

this.array1.forEach(a1Obj => {
    this.array2.some(a2Obj => {
        if (a2Obj.id === a1Obj.id) {
            console.log(a1Obj); // this object is there in array2 as well.
        }
    })
});