2

Can you please help with my problem

I have the following JavaScript object:

var data = {                                   

    'rows[0][name]':    'foshka',
    'rows[0][tel]':    '096',
    'rows[0][opt]':    'none'

};

The problem is that i get an error while trying to pass variable as rows index:

var i = 0;
var data = {                                   

    'rows['+ i +'][name]':   'one',
    'rows['+ i +'][tel]':    '096',
    'rows['+ i +'][opt]':    'none'

};

Thanks in advance

4
  • Why are the property names all strings? Commented Jul 22, 2010 at 13:18
  • 2
    It is legal syntax, though I have a feeling he is not doing what he thinks he is doing. Commented Jul 22, 2010 at 13:19
  • What error are you getting? Is it actually an error, or is data not turning out like you expected? Commented Jul 22, 2010 at 13:21
  • See also: stackoverflow.com/questions/2274242/… Commented Jul 22, 2010 at 13:28

2 Answers 2

4

Your code has to be

var data = {};
data[ 'rows['+ i +'][name]' ] = 'one';
data[ 'rows['+ i +'][tel]' ] = '069';

However you might want to change your structure to sth like this:

var data ={};
var i = 0;
data['rows'][i]['name'] = 'one';

Or even cleaner:

var data = { rows[] };

var i = 0;
data['rows'][i] = { 'name' : 'one', 'tel' : 069' };

// so you can access them like this:
alert ( data['rows'][i]['name'] );
Sign up to request clarification or add additional context in comments.

3 Comments

The second structure will throw an error unless data['rows'] and data['rows'][i] are defined first.
Please change it into option two - currently it's a crime against programming :)
There's no requirement to use bracket notation to define crazy object properties. Only when accessing said properties is it necessary.
2

I think your data should look like this:

var data = {
  rows: [{
    name: 'one',
    tel: '096',
    opt: null
  }]
};

That way you can simply add new rows if needed.

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.