назначение ключа в объекте javascript

avatar
Emjey23
8 апреля 2018 в 09:01
36
1
1

Мне интересно, как можно сделать что-то вроде этого:

Искомый результат:

{ item_id0 : 123, quantity0: 99 , item_id1 : 124, quantity1: 50 }

Мой пример кода, но он не работает:

var data = {};
angular.forEach(vm.fields, function(value, key){
    data = {
        item_id[key] : vm.selectedItem[key].id,
        quantity[key] : vm.quantity[key]
    }
})
console.log(data);
Источник
Artem
8 апреля 2018 в 09:03
0

forEach((element,in,array) => { // код }) что это за vm.fields?

Niet the Dark Absol
8 апреля 2018 в 09:03
2

Помимо того, что это Плохая идея (у вас должно быть что-то вроде [{id:123,quantity:99}, {id:124,quantity:50}]), вам, вероятно, лучше просто сделать data['item_id'+key] = vm.selectedItem[key].id;

Schorsch
8 апреля 2018 в 09:11
0

Важно ли форматирование? Вы действительно хотите, чтобы поля назывались item_id0, количество0, item_id1, количество1 и так далее?

Emjey23
8 апреля 2018 в 09:27
0

@Artem, это объект, который нужен для моих полей ввода. @NiettheDarkAbsol, спасибо за это. Но когда я передаю его в параметр, он возвращает ноль. $http.post('server/add-transaction.php', data).then(function(res){ console.log(res); }) @Schorsch, форматирование не очень важно, но я думаю, что мне нужно, чтобы оно передавалось в моем запросе на вставку php.

Ответы (1)

avatar
NTP
8 апреля 2018 в 09:33
1

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

  $scope.property = {};

  for(i = 0; i< 10;i++){
    $scope.property['item_id'+ i] = i;
    $scope.property['quantity' + i] = i+20;
  }

Демо