Зацикливание значений req.body с ключами с именами key1, key2, - PullRequest
0 голосов
/ 16 марта 2020

Я работаю над приложением Express и столкнулся с проблемой: я хочу создать массив объектов, каждый из которых имеет четыре свойства, взятых из req.body (отправленных через форму с методом POST ). Теперь их имена являются прогрессивными, например, image_1, image_2, image_3 и так далее. Как назначить эти значения клавишам в al oop?

Как вы можете видеть в следующем коде, мне интересно, как присвоить значение индекса названию значения (изображение, конечно, просто объяснение проблемы, я не могу этого сделать с квадратными скобками).

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'
}

То, что я хотел бы получить от l oop, это следующий массив 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'
}]

Ответы [ 2 ]

0 голосов
/ 17 марта 2020
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)

Вы должны использовать ${key} ответа Пасалы для доступа к переменным

0 голосов
/ 16 марта 2020

Измените

submitted_form.image_[i]

на

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

, где ключом будет префикс, например, изображение, заголовок и т. Д. c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...