首页 > 解决方案 > 使用名为 key1、key2 的键循环 req.body 值,

问题描述

我正在开发我的 Express 应用程序,但遇到了一个问题:我想创建一个对象数组,每个对象都有四个属性req.body(通过带有POST方法的表单提交)。现在,它们的名称是渐进式的,例如 image_1、image_2、image_3 等等。如何将这些值分配给循环中的键?

在下面的代码中可以看到,我想知道如何将索引值分配给值的名称(图片当然只是对问题的解释,我不能用方括号来做)。

const submitted_form = req.body;
const submitted_cards = [];

for (let i = 0; i<3; i++) {
    submitted_cards[i] = {
        image: submitted_form.image_[i],
        title: submitted_form.title_[i],
        abstract: submitted_form.abstract_[i],
        link: submitted_form.link_[i],
    }
}

所以,如果我有例如submitted_form对象:

{ image_1: 'mountains.jpeg',
  title_1: 'Mountains',
  abstract_1: 'some random text',
  link_1: 'www.google.com',
  image_2: 'jungle.jpeg',
  title_2: 'Jungle',
  abstract_2: 'some other random text',
  link_2: 'www.abc.com'
}

我想从循环中得到以下submitted_cards数组:

[{ image: 'mountains.jpeg',
   title: 'Mountains',
   abstract: 'some random text',
   link: 'www.google.com'
},{
   image: 'jungle.jpeg',
   title: 'Jungle',
   abstract: 'some other random text',
   link: 'www.abc.com'
}]

标签: javascriptexpressweb

解决方案


改变这个

submitted_form.image_[i]

对此

submitted_form[`${key}_${i}`]

其中键将是图像、标题等前缀。


推荐阅读