簡體   English   中英

ES6獲取數組中的嵌套對象

[英]ES6 get nested object in array

如何找到深深嵌套在數組中的單個對象? 這是有效的代碼。 但是當[0]返回null或一個空數組時,它實際上並沒有保存。

this.subscription = state.subscriptionsState.subscriptions
    .map(subs => subs.subscriptions.find(sub => sub.id === subscriptionId))[0];

有更好/更好的方法嗎?

編輯:輸入數據:

state.subscriptionsState.subscriptions = [
    {
        "name": "name",
        "type": "type",
        "subscriptions": [{
            "id": 123456,
        }]
    }
]

您可以reduce基本數組reduce為僅包含預訂的一維數組。

從那時起,它是一個簡單的.find() ,如果未找到任何內容,則返回undefined如果發現任何內容,則返回subscription

 'use strict' const items =[ { "name": "name", "type": "type", "subscriptions": [{ "id": 123456, }] } ] const result = items .reduce((arr, item) => arr.concat(item.subscriptions), []) .find(sub => sub.id === 123456) console.log(result) 

如果基本Array為空,或者如果任何第一級項目subscriptions Array屬性為空,則這將不會引發任何錯誤,它將僅返回undefined

如果您擁有ES6,則可以使用解構分配來簡化此操作:

const { subscriptionsState: { subscriptions } } = state

this.subscription = subscriptions.find(s => s.id === subscriptionId)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM