有条件地在return语句中包含json字段

时间:2016-03-14 12:23:12

标签: javascript 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 : '',
};

但这不是有效的语法。

1 个答案:

答案 0 :(得分: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;

这是我能想到的最佳方式。