代码之家  ›  专栏  ›  技术社区  ›  Joseph

JavaScript中对象内部的嵌套反结构

  •  1
  • Joseph  · 技术社区  · 3 年前

    我需要申报 orderItems order 订单项 找不到。所以错误当然是 Cannot read property of orderItems of null . 我该怎么解决这个问题?

     const { order: { orderItems = [] } = {} } = res.cartFind
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   T.J. Crowder    3 年前

    因为它是 null (不是 undefined ),我们不能用默认值来解决这个问题(因为它们只适用于丢失或丢失的东西) ,具体来说)。但既然它是最高级的 res.cartFind {order: ....} 分开并移动 .order ?? {}

    const { orderItems = [] } = res.cartFind.order ?? {};
    

    实例:

    function example(res) {
        const { orderItems = [] } = res.cartFind.order ?? {};
        console.log(orderItems);
    }
    
    console.log("When order is null:");
    example({
        cartFind: {
            order: null,
        },
    });
    
    console.log("When order is not null:");
    example({
        cartFind: {
            order: {
                orderItems: [1, 2, 3],
            },
        },
    });

    order 或者 无效的 或者一个物体 无效的 是法尔西,老好人 || 也可以:

    const { orderItems = [] } = res.cartFind.order || {};