我正在尝试获得这样的结构
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.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);
.map
用于数组,而您的responseJson.data
是 Object。要将该对象转换为其值的数组,您可以执行Object.values(responseJson.data)