javascript - 重命名对象中的某些键
问题描述
我有一个具有多个键和值的对象。
我只想重命名一些键而不是全部。通过我所做的,它不会返回对象中的其余键值对:
data = {key1: "value1", key2: "value2", key3: "value3", key4: "value4"};
keyMap = {key1: "firstkey", key2: "secondkey"};
mappedData = Object.keys(keyMap).reduce((obj,k) => Object.assign(obj, { [keyMap[k]]: data[k] }),{});
console.log(mappedData);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
我如何回来:
{
firstkey: "value1",
secondkey: "value2",
key3: "value3",
key4: "value4"
}
解决方案
keyMap
您可以通过检查并获取新密钥或获取旧密钥来获取条目并替换密钥。
let data = { key1: "value1", key2: "value2", key3: "value3", key4: "value4" };
keyMap = { key1: "firstkey", key2: "secondkey" },
mappedData = Object.fromEntries(
Object
.entries(data)
.map(([key, value]) => [key in keyMap ? keyMap[key] : key, value])
);
console.log(mappedData);
推荐阅读
- .net - 如何让 DispatcherTimer 设置超过 24 天的计时器?
- python - 使用 set_yticklabels 会产生水平对齐的刻度标签,而不是垂直对齐
- r - 为什么我会收到此错误?“crossprod(x, y) 中的错误:需要数字/复矩阵/向量参数”
- javascript - 垂直对齐标题元素 gatsby JS, SCSS
- bash - 平均每 N 行并将平均值附加为新列,理想情况下在 ceil(N/2) 位置
- node.js - 将查询从链接传递到服务器,第一次加载未定义的查询值,重新加载后得到正确的查询
- javascript - 如果单击链接,则使 javascript 不运行特定代码
- jasper-reports - 编译预期报告时遇到 Jasper 报告错误;
- asp.net-mvc - ASP.NET Core 在工作时会读取多少次 appsettings.json 文件?
- azure-devops - 如何使用 yaml 模板运行管道,该模板使用 Azure DevOps 引用不同存储库中的变量文件?