javascript - 扁平化对象值的最佳/最有效方法是什么?
问题描述
我目前有一个类似于以下内容的对象:
//object
{
"Question 1": ["Answer 1"],
"Question 2": ["Answer 2"],
"Question 3": ["Answer 3"],
//...
}
我想找到最有效的方法来删除包含每个答案的内部数组,最后是这样的:
//newObject
{
"Question 1": "Answer 1",
"Question 2": "Answer 2",
"Question 3": "Answer 3",
//...
}
内部数组中几乎总是只有一个项目,但如果有多个项目,那么它们以逗号分隔(从 .toString() 开始)就可以了。
到目前为止,我有以下内容:
let newObject = Object.fromEntries(Object.entries(object).map(([question, [answer]]) => [question, answer]))
这似乎工作正常,但我不太确定从对象数组的迭代创建对象的效率。
有没有更好的方法来实现我想要在这里做的事情?
谢谢!
解决方案
您可以forEach
对键进行操作并设置新值。
只取第一个元素:
Object.keys(object).forEach((key) => { newObject[key] = object[key][0] });
使用 toString 方法:
Object.keys(object).forEach((key) => { newObject[key] = object[key].toString() });
推荐阅读
- swift - Java和swift中不同的CRC32值
- flutter - Flutter - 如何在构建小部件后获取小部件的大小?
- reactjs - 字段表单不更新选项中的选定值
- google-sheets - 悬停时的 Google 电子表格链接说明
- mysql - COALESCE mysql 在什么情况下会返回第二个/第三个非空参数?
- firebase - 如何根据开始和结束日期时间过滤包含时间戳的 Firebase 对象列表?
- azure-web-app-service - 我的 Spring Boots 应用程序最终仅使用 github 操作和 azure 加载
- spring-boot - Spring Boot Connection JPA 创建数据库
- python - 尝试使用 python、flask 和 mongodb 预填充下拉菜单
- git - 撤消对远程存储库的更改