如何过滤对象数组然后返回特定属性?

Har*_*bel 0 javascript

考虑数据:

let orders = {
        "data": [
            {
                "email": "a@b.com", "orders": [
                    { "orderName": "something", "price": "43$" },
                    { "orderName": "anotherthing", "price": "4$" }
                ]
            },{
                "email": "c@w.com", "orders": [
                    { "orderName": "fish", "price": "43$" },
                    { "orderName": "parrot", "price": "4$" }
                ]
            }
        ]
    };
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用一些电子邮件来过滤对象的订单,例如:

email = 'a@b.com'
x=orders.data.filter(o =>{if (o.email === email) return o.orders});
Run Code Online (Sandbox Code Playgroud)

但整个返回值是整个匹配对象,包括电子邮件和订单,我不需要整个对象,我只想要订单。

Ber*_*rgi 6

你不能filter独自完成,你还需要map

orders.data.filter(o => o.email === 'a@b.com').map(o => o.orders)
Run Code Online (Sandbox Code Playgroud)