javascript - 合并两个对象 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 等,所以请客气:)
解决方案
我希望下面的代码可以帮助你:
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"')
}
推荐阅读
- matlab - 通过 Matlab 读取 .log 文件的最后两行
- android - 为什么从 playstore 下载的应用程序和 Apkpure 的指纹相同?
- c++ - 我正在使用嵌套的 while 循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- sql - SQL 触发器在 Azure Elastic DB 中不起作用
- bash - BASH OR 语句
- java - Android - 暂停活动并等待用户输入
- python-3.x - 第 140 行的块标记无效:'wagtailuserbar'。您是否忘记注册或加载此标签?鹡鸰错误
- javascript - 如果提到机器人,我如何让我的命令返回?
- ios - Swift 从今天扩展中的按钮打开特定的视图控制器
- python - python中的逆正态随机数生成?