我正在尝试获得类似的结构
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
});
我该如何实现?
答案 0 :(得分:1)
.map
用于数组,而您的responseJson.data
是对象。要将该对象转换为其值的数组,可以执行Object.values(responseJson.data)
答案 1 :(得分:1)
您可以使用Object.values
和Array.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.keys
和Array.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);