Как манипулировать этими значениями для идентификатора столбца? - PullRequest
0 голосов
/ 28 марта 2020

Итак, я получаю эти значения из API REST. Тем не менее, он не имеет полей для них. Я пытаюсь присвоить каждому значению в каждом из этих массивов запись и соответствующий столбец.

Как я получаю данные из бэкэнд-службы:

[["name1", null, 0]], [["name2", null, 2]] , [["name3", null, 1]]

Это то, что мне нужно:

{type: null, Name: name1, Count: 0} ,

{тип: ноль, имя: имя2, количество: 2}

{тип: ноль, имя: имя3, количество: 1}

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

Ответы [ 4 ]

1 голос
/ 28 марта 2020

Используйте функцию карты. Я предполагаю, что возвращаемые вами данные - это массив, содержащий один элемент «кортеж», в котором кортеж имеет свойства для атрибутов «Имя», «Тип» и «Количество» в позициях 0, 1 и 2.

Ниже приведен пример, в котором данные вашего сервера отображаются и отображаются так, как вы думаете.

angular.module('myApp', [])
  .controller('MainController', function MainController() {
    // Your server output
    var serverOutput = [
      [
        ["name1", null, 0]
      ],
      [
        ["name2", null, 2]
      ],
      [
        ["name3", null, 1]
      ]
    ];
    var self = this;

    self.$onInit = function $onInit() {
      self.items = serverOutput.map(function toItemType(serverArr) {
        return {
          type: serverArr[0][1],
          Name: serverArr[0][0],
          Count: serverArr[0][2]
        };
      });
    };
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="myApp">
  <div ng-controller="MainController as $ctrl">
    <div ng-repeat="item in $ctrl.items" style="margin-bottom: 10px">
      <div>Type: {{::item.type}}</div>
      <div>Name: {{::item.Name}}</div>
      <div>Count: {{::item.Count}}</div>
    </div>
  </div>
</div>
0 голосов
/ 28 марта 2020

вот простой способ

var apiData = [
          [
            ["name1", null, 0]
          ],
          [
            ["name2", null, 2]
          ],
          [
            ["name3", null, 1]
          ]
        ];
    
    
    
apiData = apiData.map((a,i)=>({name:a[0][0],type:a[0][1],Count:a[0][2]}))

console.log(apiData)
0 голосов
/ 28 марта 2020

Вы можете поместить эти три массива в один массив и l oop поверх него и создать объекты:

let arr = [[["name1", null,0]], [["name2", null, 2]], [["name3", null, 1]]]
arr.map(i => {
  const obj = {
    type: i[0][1],
    name: i[0][0],
    count: i[0][2]
  }
  console.log(obj)
})

Работающий JSFiddle здесь .

0 голосов
/ 28 марта 2020

надеюсь, что вы хорошо здесь ваше решение в JavaScript,

     var apiData = [
          [
            ["name1", null, 0]
          ],
          [
            ["name2", null, 2]
          ],
          [
            ["name3", null, 1]
          ]
        ];
    
    
    
    var arryObj = []
    
    apiData.map((a,i)=>arryObj.push({name:a[0][0],type:a[0][1],Count:a[0][2]}))
    
    console.log(arryObj)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...