简体   繁体   English

如何合并这两个forEach循环(仅使用一个)?

[英]How to merge these two forEach loops (use only one)?

The followning code takes two arrays ( fields and photos ), get the name and value of their fields, and add them to a new array ( panoramas ): 以下代码采用两个数组( fieldsphotos ),获取其字段的名称和值,然后将它们添加到新数组中( panoramas ):

Function: 功能:

const panoramas = this.uploads.finished.map(photos => {
   let panorama = {}
   fields.forEach(field => { panorama[field.name] = field.value })
   photos.forEach(photo => { panorama[photo.name] = photo.value })
   return panorama
})

Input: 输入:

fields : fields

[{
  name: "name"
  type: "hidden"
  value: ""
}, {
  name: "description"
  type: "hidden"
  value: ""
}, {
  name: "photo"
  type: "file"
  value: ""
}, {
  name: "photo2"
  type: "file"
  value: ""
}]

photos : photos

[{
  name: "photo"
  value: "1.png"
}, {
  name: "photo2"
  value: "2.jpg"
}]

Output: 输出:

panoramas:

[{
  name: "name"
  type: "hidden"
  value: ""
}, {
  name: "description"
  type: "hidden"
  value: ""
}, {
  name: "photo"
  type: "file"
  value: "1.png"
}, {
  name: "photo2"
  type: "file"
  value: "2.png"
}]

As you can see I'm using two forEach loops inside map . 如您所见,我在map使用了两个forEach循环。 Is there a way to use just one forEach ? 有没有办法只使用一个forEach

fields.concat(photos).forEach(obj => { panorama[obj.name] = obj.value });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM