2017-08-11 69 views
0

我有一個問題,當我試圖篩選陣列搜索一個特定的值未捕獲的類型錯誤:OBJ [鍵] .includes不是濾波器

enter image description here

該數組內的功能,我過濾器,我一直在尋找一個特定的「CodigoPostagem」,所以我要做的就是:

return rootState.emailsOpen 
       .filter(obj => Object.keys(obj) 
        .some(key => obj[key] 
        .includes(email.CodigoPostagem))); 

的「rootState.emaislOpen」是對象,它裏面有很多的對象包含像那些數據image「0:Object ...」

的包括嘗試搜索CodigoPostagem的具體數目,如32,31等

我所需要的是,它返回整個對象(0:對象),或至少的位置。


rootState JSON:

{ 
    "pending":{ 
     "emails":false, 
     "messageOpen":false 
    }, 
    "error":{ 
     "emails":null, 
     "messageOpen":null 
    }, 
    "emails":[ 
     { 
     "CodigoPostagem":32, 
     "DataMensagem":"2017-07-02T13:32:00", 
     "Emitente":"INOVA Farma", 
     "Titulo":"Item, 
     "Visualizado":true 
     }, 
     { 
     "CodigoPostagem":14, 
     "DataMensagem":"2017-06-28T14:35:00", 
     "Emitente":"INOVA Farma", 
     "Titulo":"Mensagem número 14", 
     "Visualizado":true 
     }, 
    ], 
    "messageOpen":null, 
    "emailsOpen":[ 
     { 
     "CodigoPostagem":14, 
     "DataMensagem":"2017-06-28T14:35:00", 
     "Emitente":"INOVA Farma", 
     "Titulo":"Mensagem número 14", 
     "Mensagem":"Test", 
     "Visualizado":true 
     }, 
    ], 
    "wait":true, 
    "loaded":true, 
} 
+2

錯誤是告訴你某些'key','obj [key]'是某種類型的值沒有'.includes()'方法可用。 – Pointy

+0

也許你忘了關閉'.some()'方法? –

+0

我想我不需要使用這個'obj [key]'因爲當我調試它已經在對象內時,所以我嘗試了類似的東西,但是沒有任何回報:'.filter(obj => Object.keys obj).some(obj.CodigoPostagem === email.CodigoPostagem));' 或 '.filter(obj => Object.keys(obj).CodigoPostagem === email.CodigoPostagem);' –

回答

0

.filter()已經在每個物體內部進行搜索,所以我需要做的是僅包括與參數我需要比較,這樣的對象:

return rootState.emailsOpen 
       .filter(obj => obj.CodigoPostagem === email.CodigoPostagem); 
相關問題