javascript - 如何使用 uniqueID 排列对象的值
问题描述
我有一个带有详细信息的对象 - 姓名、电子邮件、具有唯一 ID 的联系人
{
email_IcWDC6iyNzsQe9sPss4Yy: "xyz@gmail.com"
email_QVXeOX1vijCtpx8mdD662: "abc@gmail.com"
mobile_IcWDC6iyNzsQe9sPss4Yy: "223"
mobile_QVXeOX1vijCtpx8mdD662: "122"
name_IcWDC6iyNzsQe9sPss4Yy: "mp"
name_QVXeOX1vijCtpx8mdD662: "pp"
}
例如:name_QVXeOX1vijCtpx8mdD662
这包含 name_UniqueID 但对于一组名称、电子邮件、移动设备的表单保持不变。这些值取自前端生成的尽可能多的表单,表单具有唯一的 Id 并且已传递给它们的字段,所以我怎样才能为给定的特定唯一 ID 创建一个包含名称、电子邮件、移动设备的新对象集合.
example:
[
{
id: "IcWDC6iyNzsQe9sPss4Yy"
name: "mp",
email: "",
mobile_no: "",
},
{
id: "QVXeOX1vijCtpx8mdD662"
name: "pp",
email: "",
mobile_no: "",
},
]
解决方案
一种方法:
const d = {
email_IcWDC6iyNzsQe9sPss4Yy: "xyz@gmail.com",
email_QVXeOX1vijCtpx8mdD662: "abc@gmail.com",
mobile_IcWDC6iyNzsQe9sPss4Yy: "223",
mobile_QVXeOX1vijCtpx8mdD662: "122",
name_IcWDC6iyNzsQe9sPss4Yy: "mp",
name_QVXeOX1vijCtpx8mdD662: "pp"
};
const result = Object.values(
Object.entries(d).reduce((acc, [k, v]) => {
const [field, id] = k.split("_", 2);
if (!acc[id]) acc[id] = {id};
acc[id][field] = v;
return acc;
}, {})
);
console.log(result);
推荐阅读
- python - 在 jupyter notebook 中总是出现运行时错误
- python - 仅从 OpenCV 中的边界框 (ROI) 中提取颜色特征
- aws-cdk - aws-apigateway RestApi deployOptions 失败
- pytorch - GroupNorm 比 Pytorch 中的 BatchNorm 慢得多,并且消耗更多的 GPU 内存
- docker - “docker-compose down”如何知道应该删除哪些包含?
- python - 禁用 TensorFlow/Numpy 弃用警告消息
- azure - 禁用应用程序时 Azure 会记录脚本吗?
- python - 如何将生成器添加到 Sympy Poly 对象?
- assembly - UEFI 引导模式引导流程如何?
- python - 这个循环是怎么回事?