保存'点'符号?

时间:2016-01-15 04:17:09

标签: javascript

我想知道在较新版本的javascript中是否存在点符号的替代方式,它返回像nil这样的对象,但仍然可以使用其他.dot元素。我有这样的代码:

 var a = venue.photos.groups[0].items[0].prefix;

我收到类似

的错误
Cannot read property 'items' of undefined

并寻找与

类似的内容
if (venues.photos && venue.photos.groups && venue.photos.groups[0].items ) {
  a=venue.photos.groups[0].items[0].prefix;
} else {
  a=null;
}

对于那些了解目标C的人,我想要一些表格:

NSObject * val = [[a b] c] .. n]

4 个答案:

答案 0 :(得分:2)

使用_.get

中的lodash

他们的示例代码:

  

var object = {'a':[{'b':{'c':3}}]};

     

_。get(object,'a [0] .b.c'); //→3

     

_。get(object,['a','0','b','c']); //→3

     

_。get(object,'a.b.c','default'); //→'默认'

所以你可以做到

var a = _.get(venue, 'photos.groups[0].items[0].prefix');

答案 1 :(得分:1)

我不这么认为。 在ES6和ES7中都没有你想要的功能 http://es6-features.org/#Constants

答案 2 :(得分:1)

你可以试试这个:

var venue = { photos: { groups: [] } };
var a = venue.get("photos").get("groups").get(0).get("items").get(0).get("prefix").defaultTo("No prefix found");

用法:

{{1}}

答案 3 :(得分:0)

  

我想知道在较新版本的javascript中是否存在点符号的替代方式,它返回像nil这样的对象,但仍然可以使用其他.dot元素。

不,没有这样的事情。 There have been discussions关于ES7的这样一个运营商,但没有达成共识。