如何在二维数组中推送 JSON 数据



我正在尝试获得这样的结构

var tableData= [
  ['Hfbj'],
  ['Hygh'],
  [6],
  ['mayur'],
  [2563458952]
]

这是我的 JSON 数据:

data:{
  "address"': "Hfbj"
  "id": 6
  "landmark": "Hygh"
  "name": "mayur"
  "phone": 2563458952
  "title": "aaa"
}

我正在使用需要该类型结构的 react-native-table-component。为此,我正在执行以下操作,但它显示data.map is not function and undefined.

let newdata = this.state.tableData[0].push(
  [responseJson.data.title],
  [responseJson.data.title]
);
this.setState({
  tableData: newdata
});

我怎样才能实现它?

您可以使用Object.valuesArray.map

var reponseJson = {
  data: {
    "address": "Hfbj",
    "id": 6,
    "landmark": "Hygh",
    "name": "mayur",
    "phone": 2563458952,
    "title": "aaa"
  }
};
var newData = Object.values(reponseJson.data)
  .map(item => [item]);
console.log(newData);

请注意,我使用了responseJson名称来匹配您的问题,但正如@Andreas指出的那样,这是一个对象,而不是 JSON。

如果只需要某些列(如下面的注释中要求的那样),请在重建数组之前对它们使用 Object.keysArray.filter

var reponseJson = {
  data: {
    "address": "Hfbj",
    "id": 6,
    "landmark": "Hygh",
    "name": "mayur",
    "phone": 2563458952,
    "title": "aaa"
  }
};
var keysToKeep = ['address', 'landmark', 'title'];
var newData = Object.keys(reponseJson.data)
  .filter(key => keysToKeep.includes(key))
  .map(key => [reponseJson.data[key]]);
console.log(newData);

.map 用于数组,而您的responseJson.data是 Object。要将该对象转换为其值的数组,您可以执行Object.values(responseJson.data)

相关内容

  • 没有找到相关文章

最新更新