2017-01-27 5 views
0

У меня есть этот код:Видимость переменных в для с Javascript

let notificationList = angular.fromJson(response.data); 
console.log(notificationList); /**FIRST PRINT**/ 
let numberOfMenuItems = notificationList.numberOfMenuItems; 
console.log(" I have "+numberOfMenuItems+" Items"); /**SECOND PRINT**/ 
for(var i = 1; i <= numberOfMenuItems; i++){ 
    console.log(notificationList); /**THIRD PRINT**/ 
    let menuItemName = notificationList.('menuItemName'+i); 
    console.log(menuItemName); 
    let quantity = notificationList.('quantity'+i); 
    console.log(quantity); 
} 

Но когда я запускаю мой код, ПЕРВЫЙ PRINT говорят мне:

{ 
    "numberOfMenuItems"="1", 
    "menuItemName1"="string1", 
    "quantity1"="2", 
} 

ВТОРАЯ PRINT говорят мне:

I have 1 Items 

и все правильно! ТРЕТИЙ PRINT говорят мне:

notificationList [Object object] 

, а затем MenuItemName и количество неопределенны .. Я ничего notificationList не изменится до cycle..but, когда я вхожу в него, notificationList кажется, изменилось, потому что консоль сказать мне другие вещи, чем раньше. Что я делаю неправильно? Я надеюсь, что кто-то может мне помочь! спасибо заранее

ответ

0

Эти 2 линии неправильны:

let menuItemName = notificationList.('menuItemName'+i); 
let quantity = notificationList.('quantity'+i); 

Замените их:

let menuItemName = notificationList['menuItemName'+i]; 
let quantity = notificationList['quantity'+i]; 

Как ваш notificationList выглядеть?

+0

Спасибо, что это работает !! но зачем также работать это: let numberOfMenuItems = notificationList.numberOfMenuItems; – Catechacha

+0

Я не уверен, что получаю этот вопрос, но в ваших неправильных количествах и назначениях itemName у вас есть синтаксические ошибки. В js для доступа к свойству объекта вам нужно использовать '' 'object [propertyName]' '', а не '' 'object. (PropertyName)' '', как вы это делали. – Dario