2015-06-18 3 views
1

Я переменная определяется следующим образом:Нажмите объект в объект и Javascript

Var France ={ 

'Nice': { 

    inputs: _.extend({ 
     attrs: { 
      text : inp({ 
       text: { group: 'data', index: 1 }, 
       'font-size': { group: 'text', index: 2 }, 
       'font-family': { group: 'text', index: 3 }, 
       'font-weight': { group: 'text', index: 4 }, 

      }), 
      image: inp({ 
       'xlink:href': { group: 'presentation', index: 1 } 
      }) 
     }, 

    }), 
    groups: cities 

}}; 

var Paris = { 

    inputs: _.extend({ 
     attrs: { 
      text : inp({ 
       text: { group: 'data', index: 1 }, 
       'font-size': { group: 'text', index: 2 }, 
       'font-family': { group: 'text', index: 3 }, 
       'font-weight': { group: 'text', index: 4 }, 

      }), 
      image: inp({ 
       'xlink:href': { group: 'presentation', index: 1 } 
      }) 
     }, 

    }), 
    groups: cities 

}; 

Как я могу нажать другой город во Франции динамично, как $ (Франция) .push (Париж) itried это, но это работа доцент , как я могу сделать эту работу?

+0

Также дубликат [Как я могу добавить пару ключ/значение в JavaScript литерал объекта] (http://stackoverflow.com/q/1168807/218196) –

ответ

2

просто:

France['Paris'] = { ... }

или

France.Paris = { ... }

Вы можете использовать push операцию только на массивы (или другие типы, которые поддерживают это, но это больше продвинутый). Вы не можете нажимать на объекты, потому что они не упорядочены.

массив упорядочен, поэтому вы можете использовать:

  • push добавить элемент к концу
  • pop, чтобы удалить элемент из конца и вернуть его
  • unshift добавить элемент начало
  • shift удалить элемент с начала и вернуть i т.

Использование:

var x = []; 
x.push(1); 
//x is now [1]; 
x.unshift(2); 
//x is now [2,1]; 
+0

Спасибо за ваше объяснение, это более ясно для меня, теперь я знал, что делаю что-то неправильно. Я приму свой ответ, когда через несколько минут, когда сайт позволит мне это сделать – azelix

+0

Большое вам спасибо, я рад, что это помогло. –

1

Object не является Array. Чтобы создать новый field вы должны сделать что-то вроде

Paris["newkey"] = "aValue"; //Any value like {}, "", [], 0 
Смежные вопросы