首页 > 解决方案 > 使用 AXIOS 和 VueJs 用二维数组映射数据

问题描述

我是初学者,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)})
}

我找到了这个,但我不知道如何在我的 axios 查询中拼出它。

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

标签: javascriptvue.jsvuejs2axiosvue-component

解决方案


只需使用和从地图函数的回调中返回一个数组item.origineitem.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)


推荐阅读