Отображение данных с 2-мерным массивом с AX IOS и VueJs - PullRequest
0 голосов
/ 19 июня 2020

Я новичок в vuejs и хотел бы отобразить свой ответ данных в двухмерной таблице.

Это мои данные:

[{
  "origine": "",
  "nb": 15
}, {
  "origine": "?",
  "nb": 18
}, {
  "origine": "?L",
  "nb": 1
}, {
  "origine": "G",
  "nb": 298
}, {
  "origine": "I",
  "nb": 51
}, {
  "origine": "L",
  "nb": 1735
}, {
  "origine": "L?",
  "nb": 1
}, {
  "origine": "O",
  "nb": 4
}]

После сопоставления я хочу, чтобы данные были такими:

[
  ['', 15],
  ['?', 18],
  ['?L', 1],
  ['G', 298],
  ['I', 51],
  ['L', 1735],
  ['L?', 1],
  ['O', 4]
]

Или вот так:

[
  '': 15,
  '?': 18,
  '?L': 1, 
  'G': 298, 
  'I': 51, 
  'L': 1735, 
  'L?': 1, 
  'O': 4
]

Пока что я написал это:

getResultcivitas(localisation) {
  axios
    .get('../api/civitasorigine/' + this.searchInputcivitas)
    .then(response => {this.origines = response.data.map (x => x.origine)})
}

Я нашел это, но не знаю, как это изложить в моем запросе ax ios.

map = origines.map(obj => {
  var rObj = {};
  rObj[obj.origine] = obj.nb;
  return rObj;
});

Ответы [ 2 ]

3 голосов
/ 19 июня 2020

Просто верните массив из обратного вызова функций map с item.origine и item.nb

let data = [{
  "origine": "",
  "nb": 15
}, {
  "origine": "?",
  "nb": 18
}, {
  "origine": "?L",
  "nb": 1
}, {
  "origine": "G",
  "nb": 298
}, {
  "origine": "I",
  "nb": 51
}, {
  "origine": "L",
  "nb": 1735
}, {
  "origine": "L?",
  "nb": 1
}, {
  "origine": "O",
  "nb": 4
}]

let mappedData = data.map(item => {
  return [item.origine, item.nb];
})

console.log(mappedData)
1 голос
/ 19 июня 2020

Ну у вас есть буквально все ответы, вам просто нужно их объединить:

axios
  .get('../api/civitasorigine/' + this.searchInputcivitas)
  .then(response => {
    this.origines = response.data.map(obj => {
      const rObj = {};
      rObj[obj.origine] = obj.nb;
      return rObj;
    })
  })
...