Задать вопрос
@asus18019

Условная передача параметров, как сделать?

Привет. Делаю запрос на бекенд,
const first_name = document.getElementById("input_f_n").value;
        const last_name = document.getElementById("input_l_n").value;
        const email = document.getElementById("input_e").value;
        const houseID = document.getElementById("input_houseID").value;
        const userID = (users.filter(word => word.userID === index))[0].userID;

            const response = await fetch('http://127.0.0.1:8000/api/users/user/update', {
                method: 'PUT',
                headers: {'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest',},
                credentials: 'include',
                body: JSON.stringify({
                    userID,
                    first_name,
                    last_name,
                    houseID,
                    email,
                }),
            });


Мне нужно проверять, пустое ли значение first_name, last_name и другие, если да, то их не нужно передавать в body, а как проверку сделать и взависимости от результата проверки передавать определённые значения я не знаю
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
kleinmaximus
@kleinmaximus
Senior Full-stack Javascript Developer
const first_name = document.getElementById("input_f_n").value;
const last_name = document.getElementById("input_l_n").value;
const email = document.getElementById("input_e").value;
const houseID = document.getElementById("input_houseID").value;
const userID = (users.filter(word => word.userID === index))[0].userID;

const fields = { userID, first_name, last_name, houseID, email };

const body = Object.keys(fields).reduce((acc, key) => {
  if (fields[key] !== '' && fields[key] !== null && fields[key] !== undefined) {
    acc[key] = fields[key];
  }

  return acc;
}, {});

const response = await fetch('http://127.0.0.1:8000/api/users/user/update', {
  method: 'PUT',
  headers: {'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest',},
  credentials: 'include',
  body: JSON.stringify(body),
});


Или проверку можно организовать другим образом

//...

const body = { userID, first_name, last_name, houseID, email };

Object.keys(body).forEach(key => {
  if (body[key] === '' || key[key] === null) {
    delete body[key];
  }
});

//...


Ну или совсем "в лоб":

//...

const body = {};

if (first_name !== '') {
  body.first_name = first_name;
}

// Дальше проверки по всем значениям

// ...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы