проверка того, являются ли дочерние объекты нулевыми в javascript

#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();
        // ...