gpt4 book ai didi

javascript - 仅在 forEach 循环的最后一次迭代中触发函数

转载 作者:行者123 更新时间:2023-11-28 11:21:30 26 4
gpt4 key购买 nike

以下代码检查字段是否属于文件类型以及其中是否存在实际文件。如果是这种情况,请上传照片并更新建筑物。如果情况并非如此,请使用旧照片更新建筑物:

  fields.forEach(field => {
building[field.name] = field.value || this.building[field.name]
if (field.type === 'file' && !util.isEmpty(field.photo.file)) {
api.uploadPhoto(field.photo.file).then(resp => {
building[field.name] = resp
this.updateBuilding(building)
})
} else {
building.logo = this.building.logo // to prevent updating logo
building.floorplan = this.building.floorplan // to prevent updating logo
this.updateBuilding(building)
}
})

它运行良好,但由于 this.updateBuilding(building) 处于循环中,因此它被称为多个。

如何做到这一点,以便仅在最后一次迭代中调用?

最佳答案

MDN documentation建议 forEach 的回调具有三个参数:

  1. 元素值
  2. 元素索引
  3. 正在遍历的数组

您可以使用它来检查当前元素的索引是否等于数组的最后一个索引:

fields.forEach((field, index, array) => {

// YOUR CODE

if (index === array.length - 1) {
// DO SOMETHING
}
});

关于javascript - 仅在 forEach 循环的最后一次迭代中触发函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40542569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com