javascript - 将数组转换为具有相似键/值对的对象
问题描述
我有一个值数组如下
[
{
"factor": {
"data": "f1",
"val": [
"val1"
]
}
},
{
"factor": {
"data": "f2",
"val": [
"val2"
]
}
}
]
有没有办法将其转换为以下格式
{
"keyvalue": {
"factor": {
"data": "f1",
"val": ["val1"]
},
"factor": {
"data": "f2",
"val": ["val2"]
}
}
}
在这种情况下,对对象的标准数组解析不起作用,因为键必须是唯一的
解决方案
您可以做的是使用该data
字段作为键,因为它始终是唯一的。
像这样的东西:
{
"factor": {
"f1": ["val1"],
"f2": ["val2"]
}
}
以下是如何将数组转换为键/值对象:
let keyValue = {"factor": {}};
theArray.forEach((item) => {
const key = item.factor.data;
const value = item.factor.val;
keyValue.factor[key] = value;
});
现在keyValue
对象与描述的一样。
推荐阅读
- sql-server - 用户已被拒绝选择表,但可以通过同义词访问表
- java - Selenium 错误:将电子引擎更新到 9.0.3 后,“org.openqa.selenium.SessionNotCreatedException: session not created from tab crashed”
- java - 如何在 Android 上的 WebView 中从特定文件夹中打开 html 文件
- electron - electron-builder nsis 目标包含选项定义的宏在打包期间调用,而不是在安装期间
- azure-active-directory - 如何使用 Azure AD B2C 重定向 URI 传递自定义变量并在公共着陆页中访问该变量?
- java - 无法解析方法“setText(模型)”
- vue.js - 无法访问组件观察器 nuxtjs 中的“this”
- ssis - 如何在 SSIS 派生列的列中删除带有数字的字符串?
- java - 方法合并不能应用于给定类型
- javascript - Firebase:获取当前聊天室(或任何抽象资源)中的用户数量