在React Native中重新映射Firebase JSON数据
编辑:在了解了更多关于我最初的问题后,我不得不改变这个问题 这些数据如下所示:在React Native中重新映射Firebase JSON数据,json,reactjs,firebase,react-native,Json,Reactjs,Firebase,React Native,编辑:在了解了更多关于我最初的问题后,我不得不改变这个问题 这些数据如下所示: { "-fdsdsghdfsgsfdfdgfd" : { "latitude" : -37.830331, "longitude" : 144.9923426, "found" : false }, "-dsdgfrdhfdgfdgdgfd" : { "latitude" : -37.830331, "longitude" : 144.9923426, "f
{
"-fdsdsghdfsgsfdfdgfd" : {
"latitude" : -37.830331,
"longitude" : 144.9923426,
"found" : false
},
"-dsdgfrdhfdgfdgdgfd" : {
"latitude" : -37.830331,
"longitude" : 144.9923426,
"found" : false
},
"-Lv3cEcoiJ1wtajIzPyy" : {
"latitude" : -37.830331,
"longitude" : 144.9923426,
"found" : false
}
}
像这样进口的
从“../data/jobdata.json”导入航路点代码>
是否可以轻松地重新映射数据以遵循此表单
const waypoint = [
{latitude: -37.830331, longitude: 144.9923426, found: false },
{latitude: -37.830331, longitude: 144.9923426, found: false },
{latitude: -37.830331, longitude: 144.9923426, found: false }
];
我只是不知道如何解决这个问题
我不想从Firebase获取数据,让我们假设它是一个类似于上面的JSON文件
谢谢假设每个子对象都有唯一的对象键,下面是解决方案。现在,您可以遍历Object.values(数据)
let数据={
“第一”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
},
“第二”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
},
“第三”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
}
}
console.log(Object.values(data))代码>假设每个子对象都有唯一的对象键,下面是解决方案。现在,您可以遍历Object.values(数据)
let数据={
“第一”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
},
“第二”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
},
“第三”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
}
}
console.log(Object.values(data))代码>如果您有重复的键,则对象。值
将丢弃重复的键
let数据={
“-Lv3cEcoiJ1wtajIzPyy”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
},
“-Lv3cEcoiJ1wtajIzPyy”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
},
“-Lv3cEcoiJ1wtajIzPyy”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
}
}
让输出=对象值(数据);
控制台日志(输出)代码>如果您有重复的键,则对象。值
将丢弃重复的键
let数据={
“-Lv3cEcoiJ1wtajIzPyy”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
},
“-Lv3cEcoiJ1wtajIzPyy”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
},
“-Lv3cEcoiJ1wtajIzPyy”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
}
}
让输出=对象值(数据);
控制台日志(输出)代码>由于您是从firebase获取它,我认为密钥应该是唯一的。所以你可以用下面的方法来实现数据
你可以用
const obj={
“-Lv3cEcoiJ1wtajIzPyy”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
}
}
const transformed=对象值(obj)
console.log(已转换)
因为您是从firebase获取它的,所以我认为密钥应该是唯一的。所以你可以用下面的方法来实现数据
你可以用
const obj={
“-Lv3cEcoiJ1wtajIzPyy”:{
“纬度”:-37.830331,
“经度”:144.9923426,
“发现”:错误
}
}
const transformed=对象值(obj)
console.log(已转换)
尝试Object.values(data).map(item=>)
@ThomasByy您希望迭代所有对象或单个对象,因为您的键相同,这就是它避免所有对象的原因,我相信你的信息可能会有所帮助,但我遇到了一个更大的问题,那就是要求数据看起来略有不同。我用我现在意识到我需要的东西编辑了这个问题。抱歉,感谢您的困惑,因此您希望将“-Lv3cEcoiJ1wtajIzPyy”:{“纬度”:-37.830331,“经度”:144.9923426,“发现”:false}转换为const航路点=[{纬度:-37.827047,经度:144.991987,发现:false},{纬度:-37.82828288,经度:144.991708,发现:false},{纬度:-37.826503,经度:144.995964,发现:假},{纬度:-37.826835,经度:144.992808,发现:假},{纬度:-37.825441,经度:144.991112,发现:假}];对吗?@ThomasByy你能再给我解释一下吗?为什么有重复的键,所有的对象都有相同的值,那么为什么要在数组中重复相同的对象。试试object.values(data.map)(item=>)
@ThomasByy您想迭代所有对象或单个对象,因为您的键是相同的,这就是它避免所有对象的原因抱歉,我相信您的信息可能会有所帮助,但我遇到了一个更大的问题,只需要数据看起来略有不同。我已经用我现在意识到我需要的内容编辑了这个问题。抱歉thanksim很困惑,所以您想将“-Lv3cEcoiJ1wtajIzPyy”:{“纬度”:-37.830331,“经度”:144.9923426,“发现”:false}转换为const航路点=[{纬度:-37.827047,经度:144.991987,发现:false},{纬度:-37.82828288,经度:144.991708,发现:false},{纬度:-37.826503,经度:144.995964,发现:假},{纬度:-37.826835,经度:144.992808,发现:假},{纬度:-37.825441,经度:144.991112,发现:假}];对吗?@ThomasByy你能再给我解释一下吗?为什么有重复的键,所有的对象都有相同的值,那么你为什么要在数组中重复相同的对象。你能解释一下如何在新数组中得到最后一个吗?object.values(waypoints)[object.values(waypoints).length]
是我的愚蠢尝试。你能解释一下如何获得新数组中的最后一个吗?Object.values(waypoints)[Object.values(waypoints.length]
是我的愚蠢尝试。