如何验证异步函数中的对象数组?

时间:2019-07-27 16:55:08

标签: javascript arrays express object

我正在将对象数组发送到服务器并尝试对其进行验证,但是我失败了,它不会做任何事情,如果数组为空或者两个都不有效,那么它就行不通了,我想知道为什么吗?

这是我使用的代码:

 const ingredientValidator = ingredients.some(({ingredient, quantity})=>{
        ingredient.trim().length == 0 || quantity.trim().length == 0
      }) 

  if(ingredientValidator){
     return res.status(409).send({
       message: 'fully point ingredients'
     })  
  }

这是什么问题?

对象数组的PS示例:

[  
   {  
      ingredient:'foo',
      quantity:'bar'
   },
   {  
      ingredient:'foo',
      quantity:'bar'
   },
   {  
      ingredient:'foo',
      quantity:'bar'
   }
]

我该如何解决问题?

1 个答案:

答案 0 :(得分:2)

我认为您只需要更改ingredientValidator的返回值即可:

const ingredientValidator = ingredients.some(({ingredient, quantity})=>{
  return ingredient.trim().length == 0 || quantity.trim().length == 0
});

// or

const ingredientValidator = ingredients.some(({ingredient, quantity})=>
  ingredient.trim().length == 0 || quantity.trim().length == 0
);

当箭头后面有大括号时,它实际上是一个普通的功能块,需要使用return才能传递任何内容。您也可以只删除卷曲的块,它应该按照预期的方式获得隐式回报。