2016-03-14 65 views
0

所以,我遇到了一個問題,我通常返回空字符串,如果我找不到值或未定義。像這樣:有條件地在返回語句中包含json字段

return { 
    _method: 'update', 
    link: get(media, 'link', ''), 
    caption: get(media, 'caption', '') 
}; 

其中get()是,只是返回的東西(在這種情況下,空字符串),如果它不能找到一個提供的路徑中值lodash功能。

但是我現在需要返回咱這領域是不存在的,我試過

return { 
    _method: 'update', 
    get(media, 'link', '') ? link: media.link : '', 
    get(media, 'caption', '') ? link: media.caption : '', 
}; 

,但是這不是一個有效的語法。

+0

它是異步的嗎? –

+1

你的意思是'link:get(media,'link','')? media.link:'','? – llamerr

+0

@PraveenKumar noup – Ilja

回答

1

如果你不能擁有該字段,那麼不要動態地創建對象。使用類似:

obj = {}; 
// add static values here. 
obj["_method"] = 'update'; 

// dynamic now 
if (get(media, 'link', '')) 
    obj["link"] = media.link; 
if (get(media, 'caption', '')) 
    obj["caption"] = media.caption; 

// And finally return the obj. 
return obj; 

這是我能想到的最好方法。

+1

真棒,我改變的唯一的東西就是點符號的使用,例如'obj._method' – Ilja

+0

@Roberto問題是,如果你創建'{rob:undefined}',將會有一個'obj.rob'的條目,沒有預料到。你現在明白了嗎? –

+0

是的,我現在明白了。謝謝。 – Roberto

相關問題