#javascript #json #object #if-statement
Вопрос:
У меня есть объект, и я хочу проверить, являются ли его поля пустыми или нет, а затем я хочу отправить запрос. вот мой код:
const [newProduct, setNewProduct] = useState({
name: null,
cost: null,
size: null,
color: null,
material: null,
discount: null,
description: null,
category: null
});
const addNewProduct = () => {
if(newProduct.name amp;amp; newProduct.cost amp;amp; newProduct.size amp;amp; newProduct.color amp;amp; newProduct.material amp;amp; newProduct.discount amp;amp; newProduct.description amp;amp; newProduct.category) {
let productFormData = new FormData();
productFormData.append('productInfo', JSON.stringify(newProduct));
productFormData.append('productImages', images.imageFiles);
const addUrl = "http://localhost:8080/cpnl/addproduct";
axios({
method: "POST",
url: addUrl,
data: productFormData,
headers: { "Content-Type": "multipart/form-data" }
})
.then((response) => {
console.log(response.data.msg);
})
.catch((response) => {
console.error(response);
});
}
};
Есть ли способ сделать заявление if короче?
нужно ли мне определять все поля, чтобы изменить их?
Ответ №1:
const nulls = Object.values(newProduct).filter(p => p === null);
if (nulls.length === 0) {
// save product
}
Комментарии:
1. спасибо за ответ. необходимо ли определять поля объекта как нулевые?
2. в вашем случае null-это один из методов.скажите, какие исходные данные недопустимы, если для этих данных у вас есть входные данные, вы можете использовать пустые строки вместо null, и в фильтре напишите p. length === 0 или p === »
3. Нет у меня inputa по отдельным состояниям, и я добавлю их в объект на форме «Отправить». Спасибо
Ответ №2:
Проверьте, соответствует ли каждое из значений объекта действительности.
const addNewProduct = () => {
if (Object.values(newProduct).every(Boolean)) {
let productFormData = new FormData();
// ...