Я уверен, что есть лучший способ сделать это. В приведенном ниже коде я пытаюсь установить значение объекта item внутри массива selected_items. Я обнаружил, что использование '=' вместо '==' возвращает измененную версию найденного объекта (поведение, которое я нашел полезным в других частях моего кода).Установка значения атрибута объекта внутри массива с использованием _.find
Это хорошая идея? Мне бы очень хотелось узнать более чистый способ сделать это с помощью lodash.
$scope.increase_item_quantity = function(item_pk, addition){
if($scope.is_item_selected()){
var item_quantity = $scope.get_item_quantity();
if(!(item_quantity < 1 && addition == -1)){
console.log('adding...')
$scope.selected_items = _.result(_.find($scope.selected_items, function(item) {
return item.quantity = addition;
}), 'quantity');
}
}
}
По методу выше, я пытаюсь установить количество элемента с определенным идентификатором.
Это выглядит как ужасная проблема обслуживания, потому что это не имеет смысла читать. Почему бы вам просто не перебрать исходный массив и изменить значения? – charlietfl
Вы можете указать желаемый вход и желаемый выход? –
Теперь вы изменили весь вопрос. Это неправильно! Не ставьте вопрос на движущуюся цель и недействительные ответы, основанные на том, что вы изначально имели. – charlietfl