1

I have this simple object.

var myobj = {
   id: value
}

But instead of having a property named "id" I want the property identifier to be the value of:

$(this).attr('id');

I cannot preset this as I do not know the ID of the element. I want to be able to get my property value by

<id-of-element>.id

I understand I cannot do like this:

var myobj = {
   $(this).attr('id'): value
}

but how can I solve it? :)

1

2 Answers 2

5

You can't assign a dynamic property name like that, but you can use the [] notation:

var myobj = {};
myobj[$(this).attr('id')] = value;
Sign up to request clarification or add additional context in comments.

1 Comment

So simple, so awesome, so quick! Thanks!
0

ES6 introduces computed property names, which allow you to do

var myobj = {
   [$(this).attr('id')]: value
}

Note browser support is currently negligible.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.