2016-03-04 4 views
-3

Я хочу получить доступ к значениям «name» в Javascript.Доступ к объекту json внутри javascript

$scope.networkIds =[ 
    { 
    "name": "ghdth", 
    "value": [] 
    }, 
    { 
    "name": "dddd", 
    "value": [] 
    }, 
    { 
    "name": "Nrgyr", 
    "value": [] 
    }, 
    { 
    "name": "Ntehyt", 
    "value": [] 
    } 
]; 

В настоящее время я использую следующий код:

for(var i=0;i<=$scope.networkIds.length;i++){   
    $log.info(angular.toJson(networkIDsArray[i].name)); 
    } 

Но я получаю сообщение об ошибке, как

TypeError: Cannot read property 'name' of undefined 

Пожалуйста, помогите.

+2

'$ scope.networkIds' =' networkIDsArray' – deceze

+0

Используйте '$ scope.networkIds' вместо никогда не объявленной' networkIDsArray' ... так: 'console.log ($ scope.networkIDsArray [я]) ; ' – Hitmands

ответ

0

проблема вашей

<= $scope.networkIds.length 

вам придется использовать

< $scope.networkIds.length 

, поскольку массив с элементами х имеют действительные индексы от 0 до й - 1

+0

u - гений. Большое спасибо. – user3177493

+0

np, можете ли вы пометить ответ как правильный? –

+0

да, я пытаюсь. Но нам нужно подождать некоторое время, чтобы отметить ответ как принято. Чтобы отметить ваш ответ как принятый, мне придется ждать 2 минуты :) – user3177493

-1

Предполагая, что вы действительно делаете $scope.networkIDsArray[i].name или можете иначе объяснить п расхождение между вашими именами переменных, то вы, вероятно, просто есть ошибка на единицу здесь:

for (var i=0; i <= $scope.networkIds.length; i++)   
       ^^ 

Вы хотите < вместо <=, в противном случае вы делаете одну итерацию слишком много, и последняя итерация дает вы эту ошибку.

+0

@deceze thanks :) Это решило мою проблему. – user3177493

+0

Я могу принять только один ответ :(. – user3177493

Смежные вопросы