我无法对对象进行

时间:2019-11-22 14:21:46

标签: javascript arrays angular typescript foreach

所以我试图为每个对象创建一个,但是我做不到,而且我真的不知道为什么。

所以我有这个:

export class ProcessesModel {
  processName: string
  status: string

然后我从此类中将变量制成数组:

processStatus: ProcessesModel[] = [];

然后我通过推送将值发送到变量,就像这样:

getProcessState(refDate: string) {

this.processStatus = new Array<ProcessesModel>();

for (const pClass of Array.from(this.processClasses.keys())) {
  this.dasboardService.getProcessSate(pClass, refDate)
  .then(
    (state) => {
      switch (state) {
        case 'Successful':
          this.processClasses.set(pClass, 'input successful');
          this.processStatus.push({processName: pClass, status: 'input successful'});
          break;
        case 'Executing':
          this.processClasses.set(pClass, 'input inprogress');
          this.processStatus.push({processName: pClass, status: 'input inprogress'});
          break;
        case 'Error':
          this.processClasses.set(pClass, 'input error');
          this.processStatus.push({processName: pClass, status: 'input error'});
          break;
        case 'Not Executed':
          this.processClasses.set(pClass, 'input');
          this.processStatus.push({processName: pClass, status: 'input'});
          break;
        default:
          this.processClasses.set(pClass, 'input');
          this.processStatus.push({processName: pClass, status: 'input'});
      }
    },
    (error) => {
      this.processClasses.set(pClass, 'input error');
      this.processStatus.push({processName: pClass, status: 'input error'});
    });

  }

然后,我向该变量发送一个eventEmitter,当我对该变量进行订阅时,它不允许我执行foreach循环。它什么也没做,甚至没有错误。

当我打印一个普通对象而不是这个对象时,它的打印方式如下:

enter image description here

我可以在第一个对象中进行前移,但不能在第二个对象中进行...

编辑:当我收到所有数据时,我保存到一个新变量中:

processes: Array<any> = [];

这是我的订阅:

this.captoolsComp.processes.subscribe((processes) => {
  this.processes = processes;

  processes.forEach(process => {
    this.setProcState(process.processName, process.status);
  });

1 个答案:

答案 0 :(得分:0)

我的内容是数组,它的对象为

{ status: 1}
{ status: 0}
{ status: 1}

所以我想遍历每个对象,然后修改元素,使其以这种方式工作

rowData : any;
x: any;
 this.rowData = response['CONTENT'];
             console.log( this.rowData);
             this.rowData.forEach( (element) => {
      this.x = element.status ;
             if ( this.x = 1) {

             element.status = 'Open';

                }
              else {
             element.status = 'Close';
               }

          });
          console.log( this.rowData);

所以现在我在最终的console.log中获得了修改后的json