For 循环中的警报

Alert inside a For Loop

我有4种文件状态:准备中、待审批、已批准、已拒绝。 此外,这段代码有一个复选框,这就是数组被称为 'selectedPurhcaseRequests' 的原因。所以代码是每次我选中一个复选框时,它都会获取它的数据并将其推送到 'selectedPurchaseRequests' 数组。在该数据内部,它具有文档状态。所以我想有一个 for 循环来检查所有采购请求的文档状态。

for(let i = 0; i < this.selectedPurchaseRequests.length; i++) {
    if(this.selectedPurchaseRequests[i].docStatus !== 'In Preparation') {
        continue;
    } else {
        fetch(`url`, {
            method: 'PUT',
            headers: {
                'Content-Type': 'application/json'
            }
        })
    }
}

现在,我想提醒一条消息,其中包含状态不等于 'In Preparation' 的那些采购请求编号的摘要。但我希望它在 'selectedPurchaseRequests' 数组完成循环时提醒一次。因为如果多次alert的话,用户点击ok会很费时间和精力。

有人可以帮助我吗?

您当然有一些其他属性来标识每个选定的采购请求...就像在下面的示例中,a number and/or a description:

let requestStatuses = [];

for(let i = 0; i < this.selectedPurchaseRequests.length; i++) {

  requestStatuses.push({
    number: this.selectedPurchaseRequests[i].number,
    description: this.selectedPurchaseRequests[i].description,
    status: this.selectedPurchaseRequests[i].docStatus
  })

  if(this.selectedPurchaseRequests[i].docStatus !== 'In Preparation') {
    continue;
  } else {
    fetch(`url`, {
      method: 'PUT',
      headers: {
        'Content-Type': 'application/json'
      }
    })
  }
}

console.log(requestStatuses)  // do something with that array

工作演示:

new Vue({
  el: '#app',
  data() {
    return {
        selectedPurchaseRequests: [{
        number: 1,
        summary: 'Aplha',
        docStatus: 'Approved'
      }, {
        number: 2,
        summary: 'Beta',
        docStatus: 'In Preparation'
      }, {
        number: 3,
        summary: 'Gama',
        docStatus: 'Rejected'
      }],
      notEqualInPrep: []
    }
  },
  mounted: function() {
    this.selectedPurchaseRequests.forEach((request) => {
        if (request.docStatus !== 'In Preparation') {
        this.notEqualInPrep.push(`${request.number}-${request.summary}-${request.docStatus}`);
      }
    });
    
    alert(this.notEqualInPrep.toString())
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
</div>