如何在JavaScript中合并键值数组?React Native记账APP开发求助
解决方案
你可以通过数组map方法结合对象展开运算符,快速合并两个数组中对应位置的对象,刚好匹配你的需求场景。
核心合并逻辑
如果已经生成了hash和hashDolar两个数组,直接用以下代码生成目标数组:
const mergedData = hash.map((dayObj, index) => ({ ...dayObj, ...hashDolar[index] }));
整合到你的Firebase代码(优化版)
其实你完全可以跳过生成中间数组的步骤,在遍历Firebase快照时直接组装目标格式的数据,代码更简洁高效:
const q = query(collection(db, "users"), where("moneda", "==", "$")); const unsubscribe = onSnapshot(q, (querySnapshot) => { const mergedData = []; querySnapshot.forEach((doc) => { mergedData.push({ Day: doc.data().fecha, Amount: doc.data().cantidad }); }); // 这里就可以把mergedData传给Victory Native图表使用了 console.log(mergedData); });
边界情况处理(可选)
如果担心两个数组长度不一致(虽然你的场景里不会出现),可以加个判断避免报错:
const mergedData = hash.map((dayObj, index) => { return hashDolar[index] ? { ...dayObj, ...hashDolar[index] } : dayObj; // 长度不匹配时返回原日期对象,也可自定义默认值 });
内容的提问来源于stack exchange,提问作者Robert Grootjen
相关产品推荐
相关产品推荐

