javascript - 如何在 TypeScript 中“转置”对象
问题描述
有没有办法很好地从对象转换:
Key_1 : {Head_1 : "val_11", Head_2 : "val_21", Head_3 : "val_31"}
Key_2 : {Head_1 : "val_12", Head_2 : "val_22", Head_3 : "val_32"}
Key_3 : {Head_1 : "val_13", Head_2 : "val_23", Head_3 : "val_33"}
到:
Head_1 : {Key_1 : "val_11", Key_2 : "val_12", Key_3: "val_13"}
Head_2 : {Key_1 : "val_21", Key_2 : "val_22", Key_3: "val_23"}
Head_3 : {Key_1 : "val_31", Key_2 : "val_32", Key_3: "val_33"}
在打字稿中?
非常感谢!
解决方案
您可以使用如下所示的“for..of”和“Object.entries”来转置
顺便说一句,最好写下你的方法/你在 OP 中尝试过什么,以便其他用户看到你的前进方向
var obj = {
Key_1 : {Head_1 : "val_11", Head_2 : "val_21", Head_3 : "val_31"},
Key_2 : {Head_1 : "val_12", Head_2 : "val_22", Head_3 : "val_32"},
Key_3 : {Head_1 : "val_13", Head_2 : "val_23", Head_3 : "val_33"}
}
function transpose(obj) {
let newObj = {}
for(let [key, value] of Object.entries(obj)) {
for(let [k, v] of Object.entries(value)) {
newObj[k] = newObj[k] || {}
newObj[k][key] = v
}
}
return newObj
}
console.log(transpose(obj))
推荐阅读
- python - 使用 Tkinter 从 Messagebox 复制
- flutter - Flutter_Webview 显示空白屏幕
- ruby-on-rails - Rails 5.2:Active Storage Variants service_url 在浏览器中抛出“no such key”错误
- php - 卷曲帖子字段以在 laravel 应用程序中形成,带有重定向和弹出窗口
- python - 点不可点击 - SELENIUM - PYTHON
- excel - Excel VBA - 如果未启用宏,则防止 excel 打开文件
- xamarin - Facebook Audience Network 的 Xamarin.Forms 实现
- apache-spark - 检查点灵活性 - SparkStreaming/Databricks 自动加载器
- visual-studio - 来自 HRESULT 的 Visual Studio 2019 异常:0x80070005 (E_ACCESSDENIED)
- twitter-bootstrap - 如何制作包含 Vue 绑定的引导表?