首页 > 解决方案 > 合并两个对象 React Native

问题描述

需要帮助合并两个对象。两者都是从移动应用程序中的 Firebase Firestore 下载的。

Object 1
Object {
  "Date": "2021-04-06",
  "Store1": "199",
  "Store2": "249",
  "Store3": "159",
  "Updates": 4,
}

Object 2
Object {
 "Store2": Array [
   "Store2", 
     "Object {
       "latitude": 5,
       "longitude": 180,
      },
  ],
 "Store1": Array [
   "Store1", 
     "Object {
       "latitude": 55,
       "longitude": 120,
      },
  ],
 "Store3": Array [
   "Store3", 
     "Object {
       "latitude": 43,
       "longitude": 156,
      },
  ],
}

我想将对象 1 合并到对象 2 中,所以结果看起来是这样的。

Object 2
Object {
 "Store2": Array [
   "Store2",
   "249", 
     "Object {
       "latitude": 5,
       "longitude": 180,
      },
  ],
 "Store1": Array [
   "Store1",
   "199", 
     "Object {
       "latitude": 55,
       "longitude": 120,
      },
  ],
 "Store3": Array [
   "Store3", 
   "159",
     "Object {
       "latitude": 43,
       "longitude": 156,
      },
  ],
}

我的下一步是在屏幕上打印一个类似这样的列表

Store1  199Kr  "Geo point"
Store2  249kr  "Geo point"
Store3  159kr  "Geo point".

但我不了解数据的合并。谁能帮助我?我有机会影响从中检索数据的数据库,但由于其他功能是围绕此结构构建的,因此它是次要选择。可以补充一点,我真的不太了解数据库/Firebase/JavaScript 等,所以请客气:)

标签: javascriptfirebaseobject

解决方案


我希望下面的代码可以帮助你:

const obj1 = {
  "Date": "2021-04-06",
  "Store1": "199",
  "Store2": "249",
  "Store3": "159",
  "Updates": 4,
}

const obj2 = {
  "Store2": [
    "Store2", 
      {
        "latitude": 5,
        "longitude": 180,
       },
   ],
  "Store1": [
    "Store1", 
     {
        "latitude": 55,
        "longitude": 120,
       },
   ],
 "Store3": [
    "Store3", 
      {
        "latitude": 43,
        "longitude": 156,
       },
   ],
 }

 //merging
for (let [key2, value2] of Object.entries(obj2)) {
  for (let [key1, value1] of Object.entries(obj1)) {
    if(key1 === key2){
      value2.push(value1)
    }
  }
}

//printing on the screen
for (let [key2, value2] of Object.entries(obj2)) {
  console.log(key2 + ' ' + value2[2] + 'Kr "Geo point"')
}

推荐阅读