Javascript 使用名为key1、key2的键循环req.body值,

Javascript 使用名为key1、key2的键循环req.body值,,javascript,express,web,Javascript,Express,Web,我正在开发我的Express应用程序,我面临一个问题:我想创建一个对象数组,每个对象都有四个属性,取自req.body(通过带有POST方法的表单提交)。现在,它们的名称是渐进的,例如image_1、image_2、image_3等等。如何将这些值分配给循环中的键 正如您在下面的代码中所看到的,我想知道如何将索引值分配给值的名称(当然,该图像只是对问题的一种解释,我不能使用方括号) 我希望从循环中获得以下已提交的\u卡阵列: [{ image: 'mountains.jpeg', titl

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

正如您在下面的代码中所看到的,我想知道如何将索引值分配给值的名称(当然,该图像只是对问题的一种解释,我不能使用方括号)

我希望从循环中获得以下
已提交的\u卡
阵列:

[{ 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'
}]
改变这个

submitted_form.image_[i]
对此

submitted_form[`${key}_${i}`]
其中键将是前缀,如图像、标题等。

let对象=
let object =
{
  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'
}

var num_of_images = 2
var submitted_cards = []

for(let i=1; i<num_of_images+1; i++){
  let submitted_card = {
    image: object[`image_${i}`],
    title: object[`title_${i}`],
    abstract: object[`abstract_${i}`],
    link: object[`link_${i}`]
  }
  submitted_cards.push(submitted_card)
}

console.log(submitted_cards)
{ 图片_1:“mountains.jpeg”, 标题_1:“山脉”, 摘要1:“一些随机文本”, 链接1:“www.google.com”, 图2:“jungle.jpeg”, 标题2:“丛林”, 摘要2:“其他一些随机文本”, 链接2:“www.abc.com” } var num_of_图像=2 已提交的var_卡=[]
对于(设i=1;i虽然这是正确的,但我发现语法
submitted\u form[“key\u”+i]
比较容易混淆。不幸的是,两种解决方案都不起作用:submitted\u form是一个对象,而不是数组,所以要访问其属性,我应该使用submitted\u form.(something)而不是submitted\u form[某物],不是吗?@DummyCamel,你应该检查JS中引用对象键的不同方式。
obj[key]
obj.key
都是正确的。
obj[key]
通常在key是这种情况下的变量时使用。非常感谢!:)
submitted_form[`${key}_${i}`]
let object =
{
  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'
}

var num_of_images = 2
var submitted_cards = []

for(let i=1; i<num_of_images+1; i++){
  let submitted_card = {
    image: object[`image_${i}`],
    title: object[`title_${i}`],
    abstract: object[`abstract_${i}`],
    link: object[`link_${i}`]
  }
  submitted_cards.push(submitted_card)
}

console.log(submitted_cards)