2016-05-25 2 views
0

Я ищу, чтобы сделать мой код более эффективным. Я написал это так, потому что я не могу найти способ доступа к свойствам объектов по их соответствующим ключам. В идеале я хотел бы использовать цикл for, чтобы сократить этот огромный кусок кода. Я открыт для реструктуризации своего объекта, если это поможет.Доступ к объекту по ключу

if (response.data[i].code == 'P01') { 
    $scope.production['P01'] += response.data[i].hours; 
} else if (response.data[i].code == 'P02') { 
    $scope.production['P02'] += response.data[i].hours; 
} else if (response.data[i].code == 'P03') { 
    $scope.production['P03'] += response.data[i].hours; 
} else if (response.data[i].code == 'P04') { 
    $scope.production['P04'] += response.data[i].hours; 
} else if (response.data[i].code == 'P05') { 
    $scope.production['P05'] += response.data[i].hours; 
} else if (response.data[i].code == 'P06') { 
    $scope.production['P06'] += response.data[i].hours; 
} else if (response.data[i].code == 'P07') { 
    $scope.production['P07'] += response.data[i].hours; 
} else if (response.data[i].code == 'P08') { 
    $scope.production['P08'] += response.data[i].hours; 
} 

Как вы можете себе представить, $ scope.production является объектом, как например:

$scope.production = {'P01' :0, 'P02' : 0, 'P03' :0}; 
+0

Этот код * делает * объект доступа свойства их соответствующими ключами. Доступ к свойствам другого объекта ничем не отличается. –

ответ

3
var data = response.data[i]; 
$scope.production[data.code] += data.hours; 
Смежные вопросы