我有一个对象:
Map<String, List<Something>> map1=.....
Map<String, Integer> map2;
map2=map1.entrySet().stream().collect(Collectors.toMap(p-> p.getKey(), p->getValue().size()));
我需要访问时间属性。
由于函数的性质,我只能访问基础对象。即。
export class WriterComponent implements OnInit {
imageLink:string;
constructor() { }
ngOnInit() {
this._usersService.getS3Hash().subscribe(resp=>{
// this.options['imageUploadToS3'] = resp; // you are assigning your response to `imageUploadToS3` which doesn't exist on options object. so changes it as
this.options.events['imageUploadToS3'] = resp;
});
}
public options:Object={
heightMin:300,
events:{
'imageUploadToS3': (e,editor,link,key,response) => { //Second change your function with arrow function here
// save the link
this.imageLink=link;
}
}
我不想重写该函数,因为主要用例是访问一级深度的对象。 I.E.当天的财产。我有什么方法可以做到这一点吗?
我唯一能想到的是:
object.day.time
但这没效果。
编辑:我最初有一个对象作为访问的参数,这是错误的。在那种情况下,我可以将object.day作为值传递答案 0 :(得分:0)
你可以这样做一些时间来转到这个time
属性:
var object = {
day: {
time: (new Date()).getTime()
}
};
var properties = ["day","time"];
function access(object,properties){
for(var index=0; index < properties.length; index++){
// go to deeper into object until your reached time
object = object[properties[index]];
}
// here we have reached time and can do something with it or just returning it
return object;
}
console.log(access(object,properties));
&#13;
希望这会对你有所帮助。
答案 1 :(得分:0)
当你调用这个函数时,传递object.day而不仅仅是基础对象,这意味着函数中的对象已经是object.day所以如果你做object.time,你应该得到这个值。