首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何访问数组中的嵌套对象以对其进行验证?

如何访问数组中的嵌套对象以对其进行验证?
EN

Stack Overflow用户
提问于 2020-02-11 20:55:48
回答 1查看 104关注 0票数 0

这是我的方案:

代码语言:javascript
运行
复制
  detail: [{
         quantity: Number,

         product:{

            name: String,
            code: Number,
            price: Number
          },
          subtotal: Number

       ]}

这是我的验证方法

代码语言:javascript
运行
复制
  const validations = values => {

     const errors = {

       product: {}

       }

  if(!values.detail || 
      !values.detail.length){

   errors.detail = {_error: 'at 
    least one item must be 
        required'}
   }

    else{

 const detailArrayErrors = []

      values.detail.forEach(   
     (item,itemIndex) =>{

       const detailErrors = {}

     if(!item || !item.quantity){
         detailErrors.quantity 
             ='Required'

    detailArrayErrors[itemIndex]=

        detailErrors 
        }

    if(!item || !item.subtotal){

      detailErrors.subtotal 

        = 'required'


   detailArrayErrors[itemIndex]

         = detailErrors
          }

     //How can I access product
      // in validations method

       })

    if(detailArrayErrors.length)

     errors.detail = 
        detailArrayErrors


    }

      return errors;
          }

    export default validations;

product是我在detail中嵌套的json对象。Detail是一个数组。我想验证产品。如何访问数组中的嵌套json对象以进行验证?

我试过用来...的,但它不会产生结果。

我在网上搜索,但什么也找不到。

我该怎么做呢?

有谁知道吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-11 21:03:51

代码语言:javascript
运行
复制
values.detail.forEach(d=> console.log(d.product));

要获取无效的数组,例如:

代码语言:javascript
运行
复制
let invalidItems = values.detail.filter(d => !d.product || !d.quantity || 
!d.product.name);

要对数组中的每一项执行某些操作:

代码语言:javascript
运行
复制
this.values.detail.forEach(i => 
{
 let detailErrors = {'quantity': null, product: null};


if (!i.quantity)
  {
    detailErrors.quantity= 'Required'
  }
 if (!i.product)
  {
   detailErrors.product = 'Required'
  }
if (i.product && !i.product.price)
  {
    detailErrors.product = {'price' :'Required'}
  }

});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60169332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档