Suppose I declare a structured Javascript variable like this:
var mydata = {'list':[
{'fname':'george','lname':'washington'}
,{'fname':'oscar','lname':'wilde'}
,{'fname':'james','lname':'polk'}
]
,'summary':this.list[1]['lname']
}
Question: How can I ensure that
this.list[1]['lname']
equals 'wilde' and that my "this" is actually referring to what I intend?
Suppose I declare a structured Javascript variable like this:
var mydata = {'list':[
{'fname':'george','lname':'washington'}
,{'fname':'oscar','lname':'wilde'}
,{'fname':'james','lname':'polk'}
]
,'summary':this.list[1]['lname']
}
Question: How can I ensure that
this.list[1]['lname']
equals 'wilde' and that my "this" is actually referring to what I intend?
Share Improve this question asked Jun 10, 2009 at 22:08 dreftymacdreftymac 32.5k26 gold badges124 silver badges188 bronze badges 3- Note: I remember actually seeing someone do something like this in a stack overflow answer and saying "AHA!" to myself, but I cannot remember the post url. – dreftymac Commented Jun 10, 2009 at 22:28
- You may be refering to one of these posts: stackoverflow./search?q=javascript+aha – Jose Basilio Commented Jun 10, 2009 at 22:43
- heh ... that's funny ^_^ – dreftymac Commented Jun 10, 2009 at 23:18
2 Answers
Reset to default 5You could also make this work in a function.
var mydata = {'list':[
{'fname':'george','lname':'washington'}
,{'fname':'oscar','lname':'wilde'}
,{'fname':'james','lname':'polk'}
]
,'summary':function(){return this.list[1]['lname']}
}
alert(mydata.summary());
this won't work as written, but you could do:
var mydata = {'list':[
{'fname':'george','lname':'washington'}
,{'fname':'oscar','lname':'wilde'}
,{'fname':'james','lname':'polk'}
]
}
mydata.summary = mydata.list[1]['lname'];